繁体   English   中英

Class.getmethod是否可以找到包含Class <类型的方法? >参数?

[英]Can Class.getmethod find the method include type of Class< ? > paramter?

我的英语不好,所以我可以给你代码和错误消息代码:

  public class ReflectDemo {
  private   void t00(Class<?> unknown,String str)
   {
       System.out.println("t0");
   }
}
   @Test
    public void test01()
    {
        Class<?> unknown= null;
        try {
            Method method= ReflectDemo.class.getDeclaredMethod("t00",unknown,String.class);
            method.setAccessible(true);
            method.invoke(new ReflectDemo(),"a","b");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

错误消息:java.lang.NoSuchMethodException:Demo.ReflectDemo.t00(null,java.lang.String)如何获取t00的方法?

您不能将null作为参数值传递给getDeclaredMethod

改为传递类文字:

ReflectDemo.class.getDeclaredMethod("t00", Class.class,String.class)

请注意,您的invoke将失败,因为"a"不是Class<?>的实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM