如何实现接口Generic Method

时间:2015-04-14 02:59:38

标签: java generics interface

如何实现non-generic-interface generic method的字符串类型?

这是界面:

// non-generic-class
interface I{

    public <T> T doI(T t);

}

1 个答案:

答案 0 :(得分:1)

此接口中的所有<T>表示传递给方法的类型T与从方法返回的类型T相同。

实现需要使用符号T,就好像它是类似

public <T> T doI(T t){
    Object a = t.getClass().newInstance();
    return (T) a;
}

然后您可以使用类似

的方式调用它
I obj = getIImplementer ();
String a = obj.doI ("ssssssss");

编译器知道它可以从传递的对象类型推断出返回类型。

如果要实现特定版本,则需要将泛型参数放在接口而不是方法上,以便可以键入实现类,从而键入方法参数。