Java 泛型接口(interface)

标签 java class interface

我有通用类类型,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/

相关文章:

java - 解析特定字符串到日期

java - Kotlin:通用方法和 for 循环要求迭代器()

c++ - 在另一个类中创建类对象数组

java - Android - 检查我来自哪个类(class)

java - Velocity 模板和 Java 字符串

c++ - 我如何确定模板参数参数是否是模板内结构中另一个类的实例? C++

json - Angular2 将 json observable 返回类型定义为接口(interface)或类模型

c# - 当通用决策基于数据库值时,如何使用 C# 泛型来实现此实现

asp.net - 为什么单选按钮列表总是换行?

java - 为什么java库的编码如此不可读?