JDK 9中引入了新的嵌套类Runtime.Version。
但是,除非使用全名,否则我无法使用它
(Runtime$Version/parse (System/getProperty "java.version"))
Syntax error compiling at ...
No such namespace: Runtime$Version
;; fully qualified name works
(java.lang.Runtime$Version/parse (System/getProperty "java.version"))
#object[java.lang.Runtime$Version 0x39a4ea03 "11.0.2"]
这是预料的吗?
我还尝试了另一个(私有)嵌套类,并出现了相同的行为
String$CaseInsensitiveComparator
Syntax error compiling ...
Unable to resolve symbol: String$CaseInsensitiveComparator in this context
Java Interop参考表示嵌套类可以以Classname$NestedClassName
的方式访问,但没有具体提及这个问题。
这在我看来看起来有些不一致。
公平地说,我仍然可以导入嵌套类并使用它——但这并不是我预期必须做的。
(import 'java.lang.Runtime$Version)
(Runtime$Version/parse (System/getProperty "java.version"))
#object[java.lang.Runtime$Version 0x781187fa "11.0.2"]