2013-06-09 2 views
0
public class Team<AbstractMember> { 

    public int getPoints() { 
     int points = 0; 
     for (AbstractMember member : memberList) { 
      points += member.**getPoints()**; 
     } 
     return points; 
    } 
} 

Я хочу перебирать точки членов и возвращать их, но тот факт, что AbstractMember является типом универсального класса, отключает метод member.getPoints(). Eclipse говорит The method getPoints() is undefined for the type AbstractMember.Как я могу использовать метод определенного типа универсального класса?

public abstract class AbstractMember{ 
    private String name; 
    private int points; 

    public int getPoints() { 
     return points; 
    } 
} 

Как я могу использовать метод определенного типа универсального класса?

ответ

6

Изменить это объявление

public class Team<AbstractMember> 

в

public class Team<T extends AbstractMember> 

Затем в коде, вы должны использовать T для обозначения типа класса. Например, вам придется изменить for цикл вас от

for (AbstractMember member : memberList) 

в

for (T member : memberList) { 
+0

Большое спасибо! –

+0

@ user2468775 это ответ решил вашу проблему, пожалуйста [отметьте это как ответ] (http://meta.stackexchange.com/a/5235/182862) –

+0

Этот 'T extends MYCLASS' был необходим, как и каждый родовой класс i , Но почему это работает только так? –

Смежные вопросы