我有通用类类型,T如下:
class MyClass<T>
我也知道 T 是一个接口(interface),里面只有一个方法,但我不知道是什么接口(interface),我不能写这个:
class MyClass< T extends TheInterface >
那么有没有办法调用这个方法呢?
public void callMe(T me, Object...params){
// How can I invoke T interface method?
}
我一直在尝试这个:
public void callMe(T me, Object... params) {
// methods.length is 244, just as in my activity class
Method[] methods = me.getClass().getMethods();
try {
methods[0].invoke(me, params);
} catch (IllegalArgumentException e) {
e.printStackTrace();
return;
} catch (IllegalAccessException e) {
e.printStackTrace();
return;
} catch (InvocationTargetException e) {
e.printStackTrace();
return;
}
}
但它不起作用
编辑:我发布了新的 question这解释了为什么我需要这个
最佳答案
是的,你必须写:
class MyClass< T extends TheInterface >
有了这些信息,编译器就知道 T 有一个名为 callMe
的操作
关于Java 泛型接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13087168/