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

时间:2012-01-02 14:00:33

标签: 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()的方式,但应该有更直接的方式......

1 个答案:

答案 0 :(得分:9)

您只需要以下

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

运行时不需要泛型类型。