java - 在 java 反射中发送到 getDeclaredMethod(String, Class[]) 的参数类型

标签 java generics reflection annotations

我在这样的类中有一个方法:

public static void postEvents(List<RuleEvent> eventList) {
    for(RuleEvent event:eventList)
        if(canProcess(event))
            findListenerAndPost(event);
    }

我想像这样使用反射来访问它:

Class partypes[] = new Class[1];
partypes[0] = List.class;    //does not find the method as it is of List<RuleEvent>
postMethod = cls.getMethod("postEvents", partypes);

那么,如何获取 List<RuleEvent> 的类对象呢? ????

我已经知道((List<RuleEvent>) new ArrayList<RuleEvent>()).getClass()的方法了但应该有更直接的方法......

最佳答案

你只需要以下内容

cls.getMethod("postEvents", List.class).invoke(null, eventList);

运行时不需要通用类型。

关于java - 在 java 反射中发送到 getDeclaredMethod(String, Class[]) 的参数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8701742/

相关文章:

generics - 如何使用 Float 特性访问数字常量?

c# - 反射(reflect)属性以获取属性。当它们在别处定义时怎么办?

java - 创建编译时未知的类的实例

java - 如何在组件初始化之前在Spring Boot测试中加载h2数据

C# 字典的转换

c# - 在不指定 T 的情况下模拟 Moq 中的泛型方法

Java反射,调用传入对象的类的方法

java - android比较2个日期来找出差异

Java:糟糕的错误处理,Throw inside Finally

java - 如何使用 java 访问通过 LAN 连接的其他计算机上的文件(显示、移动)?