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

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

회원의 포인트를 살펴보고이를 반환하고 싶지만 AbstractMember가 제네릭 클래스의 유형 인 사실은 member.getPoints()을 사용 중지합니다. 이클립스는 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<T extends AbstractMember> 

이 선언

public class Team<AbstractMember> 

그런 다음 코드에서 당신은 클래스 유형을 참조 T를 사용해야합니다. 예를 들어,

for (T member : memberList) { 
+0

당신을 대단히 감사에

for (AbstractMember member : memberList) 

에서 for 루프를 변경해야합니다! –

+0

@ user2468775이 답변으로 문제가 해결되었습니다. [답변으로 표시하십시오.] (http://meta.stackexchange.com/a/5235/182862) –

+0

이 'T extends MYCLASS'는 내가 만든 모든 일반 수업과 마찬가지로 필요합니다. . 그런데 왜이 방법으로 만 작동합니까 ?? –

관련 문제