>朴素尝试失败:例如
from mypackage import SomeClass$
给
javax.script.ScriptException: 语法错误: 第 1 行中字符 '$' 处没有可行的替代方法
这个问题与java嵌套类无关,Java嵌套类很容易在Jython中导入。
例如,这样的类是scala.Predef$
类,然后可以使用Predef$.foobar
访问它。
如何实现此导入?
我找到了一个使用Java Reflection的解决方案,如下所示:
from java.lang import Class
person = Class.forName("full.path.to.Person$").getField("MODULE$").get(None)
它不漂亮,但它有效。如果可用,使用 Scala 反射 API 可能会更好。