我正在学习代码。我找到了这两个类。我不了解他们之间的关系。表达式“ 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> { ... }

07-24 12:47