13

私はケージクラスを持っています:

public class Cage<T extends Animal> {
// the construtor takes in an integer as an explicit parameter
...
}

別のクラスのメイン メソッドで Cage のオブジェクトをインスタンス化しようとしています。

private Cage cage5 = new Cage(5);

エラーが表示されます: Cage is a raw type. ジェネリック型 Cage への参照は、パラメーター化する必要があります。私はいくつかのアイデアを試しましたが、このトリッキーな構文に行き詰まっています:o(

4

2 に答える 2

23

Cage<T>はジェネリック型であるため、次のように型パラメーターを指定する必要があります ( があると仮定しますclass Dog extends Animal)。

private Cage<Dog> cage5 = new Cage<Dog>(5);

拡張する任意の型Animal(またはそれAnimal自体) を使用できます。

型パラメータを省略した場合、この場合の結果は本質的にCage<Animal>. ただし、これが必要な場合でも、型パラメーターを明示的に指定する必要があります。

于 2013-06-06T01:20:13.380 に答える