用注释标记数组的不同维度
Mark separate dimensions of an Array with Annotations
在Java8中我们可以用注释标记数组的不同维度
(参见 JLS 8 中的第 10.2 节)。
例如,
int @a[] a;
int @a[] @b[] a;
void someMethod(int @a[] @b... y) {}
然后我们可以用Java反射解析这样的声明来实现一些特定的逻辑。
您知道此功能在实际 Java 框架或 Java 库中的任何实际应用吗?
Checker Framework 是此类注释放置可能有用的示例。
它可以用于创建 mutable/immutable 或(非)可空行 - 基本上任何您可能想要注释整个数组的内容,但仅限于一行。
Object @NonNull [] @Nullable [] a;
除此之外,它还可以用于文档,例如解释每个维度用途的注释。
在Java8中我们可以用注释标记数组的不同维度 (参见 JLS 8 中的第 10.2 节)。 例如,
int @a[] a;
int @a[] @b[] a;
void someMethod(int @a[] @b... y) {}
然后我们可以用Java反射解析这样的声明来实现一些特定的逻辑。
您知道此功能在实际 Java 框架或 Java 库中的任何实际应用吗?
Checker Framework 是此类注释放置可能有用的示例。
它可以用于创建 mutable/immutable 或(非)可空行 - 基本上任何您可能想要注释整个数组的内容,但仅限于一行。
Object @NonNull [] @Nullable [] a;
除此之外,它还可以用于文档,例如解释每个维度用途的注释。