gpt4 book ai didi

Java - 为什么不允许将数组常量作为 Annotation 属性值?

转载 作者:行者123 更新时间:2023-12-01 14:29:29 57 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





How to use an array constant in an annotation

(6 个回答)


5年前关闭。



public Class Constants {
public static final String single = "aabbcc";
public static final String[] ttt = {"aa", "bb", "cc"};
}

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.PARAMETER, ElementType.FIELD})
public @interface Anno {
String aaa() default "aaa"; //this is allowed.
String bbb() default Constants.single; //this is allowed.
String[] ccc() default {}; //this is also allowed.
String[] ddd() default Constants.ttt; //while this is not!
}

如上所示,我不明白为什么不允许将字符串数组常量作为注释属性值?

最佳答案

就像 Jim Garrison 在评论中提到的那样,Java 中没有“数组常量”这样的东西。

很容易证明数组不是常量:

// Right now, Constants.ttt contains {"aa", "bb", "cc"}
Constants.ttt[1] = "foobar";
// Right now, Constants.ttt contains {"aa", "foobar", "cc"}

所以并不是说不允许使用 String 数组常量,因为 Java 中没有 String 数组常量这样的东西。

关于Java - 为什么不允许将数组常量作为 Annotation 属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34960171/

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