2013-07-25 136 views
1

我正在學習代碼。我找到了這兩個班。我不明白他們是如何相關的。表達式「T延伸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

消化後,轉到[這裏](http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html)。 –

回答

4

如前所述,這意味着您傳入Piece的類型T必須擴展PieceType。

在這裏,我們有一個擴展PieceType接口:

public interface NewPiece extends PieceType { 
    ... 
} 

你會那麼做這個實例化了一塊對象:

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

因爲NewPiece延伸PieceType在你的定義給出:

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

接口Piecegeneric,其單一類型的參數T必須實現PieceType,通過T extends PieceType所示。您可能有必要進一步閱讀泛型;相關的課程應該是一個好的開始。