我想编写一个获取2个参数的方法:
我希望它是通用的(编译时安全类型)。
有办法吗? 如果不是,那么替代方案呢?
是否有选项可以获得作为接口的通用参数?我该声明吗? ?
答案 0 :(得分:5)
这样的事情?
public <I, K extends I> void method(I i, K k){
}
在上面的方法中,第一个参数是一个接口,第二个参数是实现该接口的任何类。
Interface1 i1;
method(i1, class1); //class1 implements Interface1
在泛型中,使用extends关键字表示接口实现和类扩展。在泛型世界中没有implements关键字。
答案 1 :(得分:2)
public <T extends Interface> T myMethod(Interface I, Class<T> myClass) () {...}
如果您的方法返回T