1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

Merge pull request #1896 from xtexChooser/patch-1

fix typo
This commit is contained in:
Guide 2023-01-17 20:47:59 +08:00 committed by GitHub
commit 3bb366ad35
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -37,7 +37,7 @@ Java16 将 ZGC 线程栈处理从安全点转移到一个并发阶段,甚至
> 以下介绍摘自:[实操 | 剖析 Java16 新语法特性](https://xie.infoq.cn/article/8304c894c4e38318d38ceb116),原文写的很不错,推荐阅读。
早在 Java9 版本时Java 的设计者们就对 `@Deprecated` 注解进行了一次升级,增加了 `since``forRemova`l 等 2 个新元素。其中since 元素用于指定标记了 `@Deprecated` 注解的 API 被弃用时的版本,而 `forRemoval` 则进一步明确了 API 标记 @Deprecated 注解时的语义,如果`forRemoval=true`时,则表示该 API 在未来版本中肯定会被删除,开发人员应该使用新的 API 进行替代不再容易产生歧义Java9 之前,标记 @Deprecated 注解的 API语义上存在多种可能性比如存在使用风险、可能在未来存在兼容性错误、可能在未来版本中被删除以及应该使用更好的替代方案等
早在 Java9 版本时Java 的设计者们就对 `@Deprecated` 注解进行了一次升级,增加了 `since``forRemoval` 等 2 个新元素。其中since 元素用于指定标记了 `@Deprecated` 注解的 API 被弃用时的版本,而 `forRemoval` 则进一步明确了 API 标记 @Deprecated 注解时的语义,如果`forRemoval=true`时,则表示该 API 在未来版本中肯定会被删除,开发人员应该使用新的 API 进行替代不再容易产生歧义Java9 之前,标记 @Deprecated 注解的 API语义上存在多种可能性比如存在使用风险、可能在未来存在兼容性错误、可能在未来版本中被删除以及应该使用更好的替代方案等
仔细观察原始类型的包装类(比如:`java.lang.Integer``java.lang.Double`),不难发现,其构造函数上都已经标记有`@Deprecated(since="9", forRemoval = true)`注解,这就意味着其构造函数在将来会被删除,不应该在程序中继续使用诸如`new Integer();`这样的编码方式(建议使用`Integer a = 10;`或者`Integer.valueOf()`函数),如果继续使用,编译期将会产生'Integer(int)' is deprecated and marked for removal 告警。并且,值得注意的是,这些包装类型已经被指定为同 `java.util.Optional``java.time.LocalDateTime` 一样的值类型。