2013-07-25 92 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所示。您可能有必要进一步阅读泛型;相关的课程应该是一个好的开始。