Java反射和接口作为参数

时间:2010-12-23 07:14:11

标签: java reflection interface

我正在尝试通过反射来调用方法。有问题的方法,比如说

public void someMethod(someInterface<someObject> arg1)

我无法在运行时访问someMethodsomeInterface,并且必须通过

进行调用
someclass.getMethod("someMethod", new Class[]{Class.forName("someInterface")})
         .invoke(...)

但它失败了someInterface的ClassNotFound异常。如何获取接口的Class对象?

2 个答案:

答案 0 :(得分:2)

从概念上讲,这对我来说是正确的。检查这些事情:

  • 类路径上的接口是否在运行时?
  • 界面是公共的(不是包私有)
  • 界面是否真的在默认包中(您必须完全限定它)

最后但并非最不重要; - )

  • 检查拼写(区分大小写)

答案 1 :(得分:1)

我相信你忘记了界面的包装。调用Class.forName()时必须使用完全限定的类名,即Class.forName('com.mycompany.MyClass')

相关问题