gpt4 book ai didi

java - 使用 Java 6/7 编译的注释可以用于 Java 8 中的类型参数吗?

转载 作者:行者123 更新时间:2023-11-30 03:49:43 25 4
gpt4 key购买 nike

没有 @Target 的注释的语义似乎在 Java 7 之间发生了变化。

If a Target meta-annotation is not present on an annotation type declaration, the declared type may be used on any program element.

Java 8

If an @Target meta-annotation is not present on an annotation type T , then an annotation of type T may be written as a modifier for any declaration except a type parameter declaration.

(强调我的)。这会带来一个恼人的后果,即使用 Java 6/7 编译的任何注释都不能用于类型参数或类型使用。有什么办法可以绕过这个限制吗?

最佳答案

JavaDocs 中的规范发生变化的原因正是为了确保语义没有发生变化。没有 @Target 的注释可以用在包、类/接口(interface)/枚举/注释类型声明、字段、构造函数、方法、构造函数和方法参数以及局部变量声明上,而这不能 Java 7 和 8 之间发生了变化。

在 Java 8 之前,注释根本不能用于类型参数声明或类型使用,因此允许在这些类型中使用未经过 @Target 修饰的注释这种情况会破坏 Java 8 之前的现有注释类型所约定的契约。

关于java - 使用 Java 6/7 编译的注释可以用于 Java 8 中的类型参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24737500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com