ジェネリック初心者です。これが私のクラスです。
public interface Animal {
void eat();
}
public class Dog implements Animal {
public void eat() {
System.out.println("Dog eats biscuits");
}
}
public class Cat implements Animal {
public void eat() {
System.out.println("Cat drinks milk");
}
}
今、これらのクラスを一般的な方法で使用したいと考えています。
public class GenericExample {
public <T extends Animal> T method1() {
//I want to return anything that extends Animal from this method
//using generics, how can I do that
}
public <T extends Animal> T method2(T animal) {
//I want to return anything that extends Animal from this method
//using generics, how can I do that
}
public static void main(String[] args) {
Dog dog = method1(); //Returns a Dog
Cat cat = method2(new Cat()); //Returns a Cat
}
}
メソッド「method1」と「method2」からジェネリック型 (Cat または Dog の可能性があります) を返すにはどうすればよいですか。「T extends Animal」を返すようなメソッドがいくつかあるので、ジェネリック型をメソッド レベルまたはクラス レベルで宣言する方がよいでしょうか。