1

コードを勉強しています。この 2 つのクラスを見つけました。それらがどのように関連しているのかわかりません。"T extends 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();
}
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ジェネリックであり、その 1 つの型パラメーターはで示されているように をT実装する必要があります。ジェネリックについてさらに詳しく読むのは当然のことかもしれません。リンクされたレッスンは良いスタートになるはずです。PieceTypeT extends PieceType

于 2013-07-25T13:30:57.067 に答える