当前位置: 代码迷 >> java >> 在标记为@ Parameterized.Parameters的方法中读取变量
  详细解决方案

在标记为@ Parameterized.Parameters的方法中读取变量

热度:50   发布时间:2023-07-25 19:07:44.0

我有一个标有注解@ Parameterized.Parameters的方法

@Parameterized.Parameters
public static List<Object[]> myData() {

现在,作为标记为@BeforeClass的另一种方法的一部分,我阅读了SystemProperty xyz

@BeforeClass
final String xyz = System.getProperty("XYZ");

如果有的话我可以在myData中使用xyz,所以获取依赖于xyz的List? 是否需要确保仅在BeforeClass完成后填充参数?

如果您只需要设置“ xyz”字符串-不要使用@BeforeClass因为它只能在静态方法上使用(您的示例实际上是不正确的)。

因此,将“ xyz”定义为没有@BeforeClass批注的静态最终形式:

private static final String xyz = System.getProperty("XYZ");

可以使用该属性的值在myData()对其进行访问。

不幸的是,如果使用@BeforeClass在静态方法中设置“ xyz”,则无法在myData()获取值,因为该方法将在myData()之后调用(在这种情况下,“ xyz”为null)。 作为解决方法,您可以改用静态初始化块。

  相关解决方案