java 方法返回来跟随调用方返回类型

曾经看到过这样的用法,就是一个方法的返回类型是不确定,但是当调用这个函数的时候,自动把调用方法的返回类型作为被调用方法的返回类型, 拜托各位帮忙想想,或者给个例子。

 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的多态吧,定义返回类型为父类,具体可返回不同的子类,