2013-07-25 4 views
1

코드를 공부하고 있습니다. 나는이 두 클래스를 발견했다. 나는 그들이 어떻게 관련되어 있는지 이해하지 못한다. 표현 "T extends PieceType"은 무엇을 의미합니까, T는 무엇을 의미합니까?Java- 인터페이스는 인터페이스를 사용합니다.

piece.java :

public interface Piece<T extends PieceType> { 

    /** 
    * Returns the color. 
    * @return the color 
    */ 
    PieceColor getColor();  

    /** 
    * Returns the type. 
    * @return the type 
    */ 
    T getType(); 
} 

pieceType.java :

public interface PieceType { 

    /** 
    * Returns the type's base rating. 
    * @return the base rating within range [0, 1000] 
    */ 
    double getRating(); 
} 
+4

제네릭에 대해 읽어야합니다. [여기] (http://docs.oracle.com/javase/tutorial/java/generics/)를 시작하십시오. –

+0

소화 후 [here] (http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html)로 이동하십시오. –

답변

4

앞서 언급했듯이, 당신이 Piece로 넘겨주는 T 타입은 PieceType을 확장해야 함을 의미합니다.

public interface NewPiece extends PieceType { 
    ... 
} 

그런 다음 이렇게하여 조각 개체를 인스턴스화 것 : 여기

우리는 PieceType가 확장 인터페이스를 가지고 당신의 정의에 주어진 NewPiece이 PieceType을 확장하기 때문에

Piece<NewPiece> aPiece = new SomeImplementationOfPiece<NewPiece>(); 

:

public interface Piece<T extends PieceType> { ... } 
3

인터페이스 Piecegeneric이며, T extends PieceType로 나타낸 바와 같이 그 단일 타입 파라미터 TPieceType를 구현해야한다. 당신에게 제네릭을 더 읽으려고 할 수도 있습니다; 링크 된 교훈은 좋은 시작이어야합니다.

관련 문제