我正在学习代码。我找到了这两个类。我不了解他们之间的关系。表达式“ T扩展PieceType”是什么意思,T代表什么?
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();
}
最佳答案
如前所述,这意味着您传递给Piece的类型T必须扩展PieceType。
这里我们有一个扩展PieceType的接口:
public interface NewPiece extends PieceType {
...
}
然后,您可以通过执行以下操作实例化一个Piece对象:
Piece<NewPiece> aPiece = new SomeImplementationOfPiece<NewPiece>();
因为NewPiece扩展了您的定义中给出的PieceType:
public interface Piece<T extends PieceType> { ... }