In Java why this error: 'attribute value must be constant'?
In Java why this error: 'attribute value must be constant'?
我有一些 TestNG 代码,我在其中传递了一个名为 timeOut = TESTNG_TEST_TIMEOUT
的测试注释参数。
@Test(description = "Tests something.", groups = { "regression" },
timeOut = TESTNG_TEST_TIMEOUT, enabled = true)
在我的 TestBase class 我有这个成员:
public final static long TESTNG_TEST_TIMEOUT = TimeUnit.MINUTES.toMillis(5);
当我使用上面的代码行时,我在 Eclipse 中遇到 'attribute value must be constant' 错误。
但是,如果我像这样简单地定义成员,它就起作用了:
public final static long TESTNG_TEST_TIMEOUT = 300000;
TimeUnit的使用不是常量吗?
这个
public final static long TESTNG_TEST_TIMEOUT = 300000;
是一个constant variable, a type of constant expression。
这个
public final static long TESTNG_TEST_TIMEOUT = TimeUnit.MINUTES.toMillis(5);
不是。
注释成员 expect 常量表达式(以及一些其他的东西,例如枚举和 Class
文字)。
我有一些 TestNG 代码,我在其中传递了一个名为 timeOut = TESTNG_TEST_TIMEOUT
的测试注释参数。
@Test(description = "Tests something.", groups = { "regression" },
timeOut = TESTNG_TEST_TIMEOUT, enabled = true)
在我的 TestBase class 我有这个成员:
public final static long TESTNG_TEST_TIMEOUT = TimeUnit.MINUTES.toMillis(5);
当我使用上面的代码行时,我在 Eclipse 中遇到 'attribute value must be constant' 错误。
但是,如果我像这样简单地定义成员,它就起作用了:
public final static long TESTNG_TEST_TIMEOUT = 300000;
TimeUnit的使用不是常量吗?
这个
public final static long TESTNG_TEST_TIMEOUT = 300000;
是一个constant variable, a type of constant expression。
这个
public final static long TESTNG_TEST_TIMEOUT = TimeUnit.MINUTES.toMillis(5);
不是。
注释成员 expect 常量表达式(以及一些其他的东西,例如枚举和 Class
文字)。