2010-12-27 11 views
0

Что я пишу вместо «TheClass», чтобы сделать эту работу? Или есть альтернативный способ сделать это (возможно, не используя WithName и WithAge generic)?Java generics: фактический класс как общий параметр

class Item { 
NeigborList<TheClass> neighbors; 
} 

class WithName extends Item { // here I want neighbors to be a NeighborList<WithName> 
String name; 
void someMethod() { 
    System.out.println(neighbors.nearestTo(this).name); 
} 
} 

class WithAge extends Item { // here I want neighbors to be a NeighborList<WithAge> 
int age; 
void someOtherMethod() { 
    System.out.println(neighbors.nearestTo(this).age); 
} 
} 
+1

Неясные вопрос. –

+3

Я предлагаю вам попробовать выбрать имена, которые описывают концепции как можно точнее. «Пункт» почти наверняка будет слишком общим. Если вы можете решить, что такое Item, это поможет вам смоделировать систему –

ответ

4

Я думаю, что вы хотите сказать, что это

class Item <T> { 
    NeigborList<T> neighbors; 
} 

class WithName extends Item<WithName> { 
    ... 
} 
Смежные вопросы