Rhino에서 내부 클래스 (Java로 정의 됨)를 서브 클래스로 만들려고하고 있는데 제대로 작동하지 않는 것 같습니다.Rhino에서 내부 (정적) 클래스를 서브 클래 싱하는 방법은 무엇입니까?
좀 컴파일 된 자바 코드 (나는 기본적으로 변경할 수없는) 내부 추상 클래스가 그있어는 : 코뿔소에서
package mypackage;
class MyClass {
abstract static class MyInnerClass {
abstract void print(String s);
}
}
을, 내가 잘 볼 수 있습니다 :
js> Packages.mypackage.MyClass.MyInnerClass
[JavaClass mypackage.MyClass$MyInnerClass]
하지만 하위 클래스를 만드는 방법을 알 수 없습니다. 내가 아닌 내부 클래스 위해 그것을하기 때문에 이런 일이, 일 거라 생각 :
var a = new JavaAdapter(Packages.mypackage.MyClass.MyInnerClass, {
print: function(s) { print("s=" + s); },
});
을뿐만 아니라 그것은 코뿔소 자체가 종료, 작동하지 않는, 그리고 나에게 매우 스택 추적 제공 :
Exception in thread "main" java.lang.IllegalAccessError: class adapter1 cannot access its superclass mypackage.MyClass$MyInnerClass
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:676)
at org.mozilla.javascript.DefiningClassLoader.defineClass(DefiningClassLoader.java:62)
...
을
내가 잘못하고 있니? 어떤 아이디어?
EDIT : 오, 방금 MyClass가 "공개"로 선언되지 않았 음을 알았습니다. 그게 될 수 있을까요?
잘 공개하고 다시 우리에게 연락하십시오 :-) – Pointy
아마 네가 서브 클래스에 따라 공개 할 필요가 있습니다. – fmucar