【发布时间】:2019-08-25 13:53:03
【问题描述】:
在 Java 中,我通常通过 Reflection 调用一个方法,该方法使用 interface 作为参数,方法是使用以下方法构建我的参数:
Method method = theClass.getMethod("methodName", new Class[]{ IAnyInterface.class });
但是当interface 嵌套在私有类中时我不知道该怎么做:JSomething.INestedInterface,其中JSomething 是private:
private class JSomething {
public void init(INestedInterface iSomething) {
...
}
public interface INestedInterface {
public void notify();
}
...
}
这里使用它甚至无法编译,因为接口不可访问:
Method method = theClass.getMethod("init", new Class[]{JSomething.INestedInterface.class});
我已经创建了一个可以调用的代理处理程序,但是当我无法使用嵌套接口名称时,我一直在尝试构建 class 参数,有什么建议吗?
【问题讨论】:
-
你的私有类是内部类吗?如果是,请参阅此stackoverflow.com/questions/14112166/…
-
您需要其他说明吗?
-
谢谢。
private并不真正存在,它是一个说话的数字。真正的class位于具有不同包名的文件中,默认情况下使该类私有。它现在工作正常,我不知道$运算符^^。再次感谢。
标签: java reflection interface