欢迎!请查看关于页面以获取更多关于如何使用本站的信息。
由于Clojure 1.10 alpha-6已取消对Java <=7的支持,因此将Java <=8中新增的类添加到Clojure的{{DEFAULT_IMPORTS}}中有意义。
以下是我所知道的那些类的列表
Java 7中引入- AutoCloseable- ClassValue- ReflectiveOperationException- BootstrapMethodError- SafeVarargs
Java 8中引入- FunctionalInterface
已由: Alex Miller预审
评论:gshayban
除了AutoCloseable之外,其他那些类很少使用。就我个人而言,我更愿意明确导入它们,而不是污染ns导入。事实上,标注有FunctionalInterface的接口(一个注解类型)是常见的,明确使用它并不常见。
对于未由java.base模块加载的类,额外的类加载会有轻微的启动时间成本。我已经实验过移除一些很少使用的默认导入(无疑是一个破坏性的更改)。
评论:alexmiller
我认为我们应该坚持过去的观点和声明 - java.lang中的内容将被自动导入。我认为自动导入6个类不会影响启动时间。
评论人:sohta
添加了补丁,以防万一 :)
评论人:glts
Java.lang包中的几个嵌套类也尚未实现自动导入。其中一些已经实现了
`Thread$UncaughtExceptionHandler; => java.lang.Thread$UncaughtExceptionHandler
`
Character$Subset; 编译错误在(REPL:0:0)。; 在此上下文中无法解析符号:Character$Subset `
缺失的导入如下
`}
{{ProcessBuilder$Redirect$Type}}
也许在这里添加它们也不错。至少我没有意料到无法使用裸露的 `}.