我有一个标有@ Parameterized.Parameters批注的方法
2.46
现在作为标记为@BeforeClass的另一种方法的一部分,我阅读了SystemProperty xyz
@Parameterized.Parameters
public static List<Object[]> myData() {
如果仍然可以在myData中使用xyz,那么获取依赖于xyz的List?是否需要确保仅在BeforeClass完成后填充参数?
答案 0 :(得分:0)
如果您只需要设置“ xyz”字符串-不要使用@BeforeClass
,因为它只能在静态方法上使用(您的示例实际上是不正确的)。
因此,将“ xyz”定义为没有@BeforeClass批注的静态最终形式:
private static final String xyz = System.getProperty("XYZ");
可以在myData()
中使用该属性的值来访问它。
不幸的是,如果您使用myData()
在静态方法中设置“ xyz”,则无法在@BeforeClass
中获得该值,因为该方法将在myData()
之后调用(在这种情况下, xyz”将为空)。作为解决方法,您可以改用静态初始化块。