0
私はジェネリックメソッドに、メソッドから戻したいクラスを含む列挙型を受け取るようにしたいと思います。一般的なメソッドは汎用の列挙型を受け取ります
だから、これは私が(例えば)持ってどれくらいです:
public class Zoo {
public Monkey apu;
public Lion simba;
public Bird zazu;
public <T extends Animal> T getAnimal(String animal, Animaltype animaltype){
switch(animal){
case "apu":
return animaltype.getType().cast(zoo.feedAnimal(animaltype.getType()))
case "simba":
return ??????????????
case "zazu":
return ??????????????
}
}
}
public enum Animaltype {
MONKEY(Monkey.class),
LION(Lion.class),
BIRD(Bird.class);
Class <?> enumClass;
Animaltype(Class<?> enumClass) {
this.enumClass = enumClass;
}
public Class<?> getType(){
return this.enumClass;
}
}
は、今では必要に応じて1がTであると見られるものがオブジェクトであることリターンで言っています。
エラーメッセージは次のとおりです。必要な 「互換性のないタイプ:Javaは何を知らないので、Tはjava.lang.Objectの
を見つけた私は、それは動作しません右の構文に
ポストコンパイル・エラーの原因となったコード、そして正確かつ完全な誤りである必要があります。 –
"?????"のために何かを記入することは可能ではありませんこれは完全な型セーフです。あなたはチェックされていないキャストが必要です。 – Jesper