曾经看到过这样的用法,就是一个方法的返回类型是不确定,但是当调用这个函数的时候,自动把调用方法的返回类型作为被调用方法的返回类型, 拜托各位帮忙想想,或者给个例子。
public <T extends Animal> T callFriend(String name, Class<T> type) {
return type.cast(friends.get(name));
}
http://stackoverflow.com/questions/450807/how-do-i-make-the-method-return-type-generic
你是指使用泛型么?像这样?
public class Test {
public static <T> T generic(String v, Class<T> clazz) throws Exception {
Constructor<T> c = clazz.getConstructor(String.class);
return c.newInstance(v);
}
public static void main(String[] args) throws Exception {
String str = generic("abc", String.class);
Integer i = generic("125", Integer.class);
System.out.println(str.getClass() + "---" + str);
System.out.println(i.getClass() + "---" + i);
}
}
输出:
class java.lang.String---abc
class java.lang.Integer---125
java当中不建议普通方法定义泛型,普通方法必须通过对象调用,所以,一般在类上面定义泛型,如果是静态方法才在方法上定义泛型,定义泛型的方法是可以定义n个
你说的应该是java的多态吧,定义返回类型为父类,具体可返回不同的子类,