欢迎!请查阅 关于 页面以了解更多关于此信息的详情。
鉴于 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}}
也许在这里添加这些也不错。至少我对于无法使用裸 `}.