чтение переменной в методе, помеченном @ Parameterized.Parameters - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть метод, помеченный аннотацией @ Parameterized.Parameters

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

Теперь, как часть другого метода, помеченного @BeforeClass, я прочитал SystemProperty xyz

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

Если все равно естьЯ могу использовать xyz в myData, чтобы получить список, который зависит от xyz?Что-то вроде того, чтобы убедиться, что параметры заполняются только после того, как был сделан BeforeClass?

1 Ответ

0 голосов
/ 25 февраля 2019

Если вам нужно установить только строку "xyz" - не используйте @BeforeClass, потому что она может использоваться только для статических методов (ваш пример на самом деле не верен).

Итак, определите "xyz""как статический финал без аннотации @BeforeClass:

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

Он будет доступен в myData() со значением из этого свойства.

К сожалению, невозможно получить значение внутри myData() если вы установите "xyz" внутри статического метода с помощью @BeforeClass, потому что этот метод будет вызван после myData() (в этом случае "xyz" будет нулевым).В качестве обходного пути вы можете использовать вместо этого статический блок инициализации.

...