【发布时间】:2014-01-21 08:10:25
【问题描述】:
为什么我的场景中的第二个测试在SuppressWarnings 行上有语法错误The value for annotation attribute SuppressWarnings.value must be an array initializer?
public class AnnotationTest {
private static final String supUnused = "unused";
private static final String supDeprecation = "deprecation";
private static final String[] suppressArray = { "unused", "deprecation" };
public static void main(String[] args) {
// Test 1
@SuppressWarnings( { supUnused, supDeprecation } )
int a = new Date().getDay();
// Test 2
@SuppressWarnings(suppressArray) // syntax error
int b = new Date().getDay();
}
}
如果您将参数作为两个单一常量传递,它可以工作。
如果您使用数组常量传递它,则会出现语法错误。
这个错误的解释是什么?
【问题讨论】:
-
@RafaEl:感谢您提供文档链接!关键是,我已经知道,你必须使用
SupressWarnings;) -
是的,我当然知道你知道这一点。但是..好吧,我不知道为什么我给你链接:D
-
@Downvoter:请解释一下!
标签: java arrays string annotations