在Jython中,如何导入带美元符号($)的java类名,或引用带美元符号的字段或方法?
天真的尝试失败了在Jython中,如何导入带美元符号($)的java类名,或引用带美元符号的字段或方法?,java,scala,jython,Java,Scala,Jython,天真的尝试失败了 from mypackage import SomeClass$ 给予 javax.script.ScriptException:SyntaxError:在第1行的字符“$”处没有可行的替代方案 这个问题与java嵌套类无关,java嵌套类在Jython中很容易导入 例如,这样的类是scala.Predef$类,然后可以使用Predef$.foobar访问该类 如何实现此导入?我发现了一个使用Java反射的解决方案,如下所示: from java.lang import Cl
from mypackage import SomeClass$
给予
javax.script.ScriptException:SyntaxError:在第1行的字符“$”处没有可行的替代方案
这个问题与java嵌套类无关,java嵌套类在Jython中很容易导入
例如,这样的类是scala.Predef$
类,然后可以使用Predef$.foobar
访问该类
如何实现此导入?我发现了一个使用Java反射的解决方案,如下所示:
from java.lang import Class
person = Class.forName("full.path.to.Person$").getField("MODULE$").get(None)
虽然不漂亮,但很管用。如果可以的话,使用Scala反射API可能更好。您有导入类的示例吗?这是阶级内部的偶然现象吗?通常情况下,类容器$是某些东西的内部,我担心您有一个问题,我正在尝试访问scala.Predef$类,通常在java中通过“import scala.Predef$;”导入,然后通过“Predef$”引用。神圣的Polyglot蝙蝠侠。这与内部类无关。$是java类标识符的合法部分,据我所知,Jython不支持导入。