我正在阅读来自 Oracle 的文档:https://docs.oracle.com/javase/tutorial/java/annotations/basics.html
然后遇到了这段关于类型注释的代码
类实例创建表达式:
new @Interned MyObject();
这是否意味着 Java8 或 future 版本允许/将允许非 String/long/int 对象的实习?
最佳答案
据我所知还没有这样的计划。这只是一个如何使用注解的例子。我想它可以由第三方注释处理器实现,如 project Lombok ,但我们不太可能在 JDK 中看到这样的功能(至少在不久的将来)。其他的例子如@Readonly
也只是例子,不应该加入到JDK中。
请注意,在用户代码中使用 String.intern()
是非常糟糕的。现在它不像在 JDK6 中那么大的灾难,但它仍然很糟糕。您可以使用 ConcurrentHashMap.putIfAbsent(obj, obj)
轻松实现您自己的对象池。
关于java - Java 8 中非 String(非 int/long)对象的实习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31445259/