1

我正在学习代码。我找到了这两个类。我不明白它们是如何相关的。表达式“T extends PieceType”是什么意思,T 代表什么?

片断.java:

public interface Piece<T extends PieceType> {

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

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

片断类型.java:

public interface PieceType {

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

2 回答 2

4

如前所述,这意味着您传递给 Piece 的类型 T 必须扩展 PieceType。

这里我们有一个扩展 PieceType 的接口:

public interface NewPiece extends PieceType {
    ...
}

然后,您将通过执行以下操作来实例化 Piece 对象:

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

因为 NewPiece 扩展了您定义中给出的 PieceType :

public interface Piece<T extends PieceType> { ... }
于 2013-07-25T13:39:03.340 回答
3

该接口Piece通用的,它的单一类型参数T必须实现PieceType,如 所示T extends PieceType。您可能应该进一步阅读泛型;链接课程应该是一个好的开始。

于 2013-07-25T13:30:57.067 回答