Skip to content

Commit

Permalink
Merge pull request Snailclimb#1896 from xtexChooser/patch-1
Browse files Browse the repository at this point in the history
fix typo
  • Loading branch information
Snailclimb authored Jan 17, 2023
2 parents b15d4a6 + 2a1291a commit 3bb366a
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion docs/java/new-features/java16.md
Original file line number Diff line number Diff line change
Expand Up @@ -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` 一样的值类型。

Expand Down

0 comments on commit 3bb366a

Please sign in to comment.