欢迎!有关如何使用本系统的更多信息,请参阅关于页面。
Clojure 1.10 alpha-6版本已停止支持Java <=7,因此将Java <=8中引入的{{java.lang}}包中的新类添加到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}}
也许在这里添加这些也挺好的。至少我对此感到惊讶,不能使用裸 `}.