メソッドの戻り値の型をジェネリックにする方法を教えてください。
次の例を考えてみてください(OOPブックでは一般的です)。 私にはAnimalクラスがあり、それぞれにAnimal多くの友達がいます。 好きなサブクラスDog、Duck、Mouseのような特定の動作を追加などbark()、quack()など ここにAnimalクラスがあります: public class Animal { private Map<String,Animal> friends = new HashMap<>(); public void addFriend(String name, Animal animal){ friends.put(name,animal); } public Animal callFriend(String name){ return friends.get(name); } } そして、ここにたくさんの型キャストがあるコードスニペットがあります: Mouse jerry = new Mouse(); jerry.addFriend("spike", new Dog()); jerry.addFriend("quacker", new Duck()); ((Dog) jerry.callFriend("spike")).bark(); ((Duck) jerry.callFriend("quacker")).quack(); 型キャストを取り除くために戻り値の型にジェネリックスを使用できる方法はありますか? jerry.callFriend("spike").bark(); jerry.callFriend("quacker").quack(); 以下に、使用されないパラメーターとしてメソッドに返される戻り値の型を含む初期コードをいくつか示します。 …