Skip to content

Commit 2a1291a

Browse files
authored
fix typo
1 parent 48eab7d commit 2a1291a

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

docs/java/new-features/java16.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ Java16 将 ZGC 线程栈处理从安全点转移到一个并发阶段,甚至
3737

3838
> 以下介绍摘自:[实操 | 剖析 Java16 新语法特性](https://xie.infoq.cn/article/8304c894c4e38318d38ceb116),原文写的很不错,推荐阅读。
3939
40-
早在 Java9 版本时,Java 的设计者们就对 `@Deprecated` 注解进行了一次升级,增加了 `since``forRemova`l 等 2 个新元素。其中,since 元素用于指定标记了 `@Deprecated` 注解的 API 被弃用时的版本,而 `forRemoval` 则进一步明确了 API 标记 @Deprecated 注解时的语义,如果`forRemoval=true`时,则表示该 API 在未来版本中肯定会被删除,开发人员应该使用新的 API 进行替代,不再容易产生歧义(Java9 之前,标记 @Deprecated 注解的 API,语义上存在多种可能性,比如:存在使用风险、可能在未来存在兼容性错误、可能在未来版本中被删除,以及应该使用更好的替代方案等)。
40+
早在 Java9 版本时,Java 的设计者们就对 `@Deprecated` 注解进行了一次升级,增加了 `since``forRemoval` 等 2 个新元素。其中,since 元素用于指定标记了 `@Deprecated` 注解的 API 被弃用时的版本,而 `forRemoval` 则进一步明确了 API 标记 @Deprecated 注解时的语义,如果`forRemoval=true`时,则表示该 API 在未来版本中肯定会被删除,开发人员应该使用新的 API 进行替代,不再容易产生歧义(Java9 之前,标记 @Deprecated 注解的 API,语义上存在多种可能性,比如:存在使用风险、可能在未来存在兼容性错误、可能在未来版本中被删除,以及应该使用更好的替代方案等)。
4141

4242
仔细观察原始类型的包装类(比如:`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` 一样的值类型。
4343

0 commit comments

Comments
 (0)