java - Java 8 中非 String(非 int/long)对象的实习

标签 java java-8 string-interning

我正在阅读来自 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/

相关文章:

java - 为什么 String.intern() 方法会返回两个不同的结果?

java - 如何在 Java 中迭代我创建的类?

gradle - Gradle,Javadoc和JDK版本

java - 使用 Java 流从列表中获取第 n 个元素

c# - serializer.Deserialize<T>() 上的字符串实习生

java - 为什么虎书的符号表中要字符串intern?

java - Java中存储配置相关信息

java - 用新检查的异常覆盖 Java 接口(interface)

java - Java 中 Math.rint() 和 Math.round() 的区别

java - 如何将匿名java类转换为lambda表达式?