Если речь идет о читабельности, у меня есть концепция отделения проверенных данных от логики тестирования. Пример кода:
// declare data
DataType [] dataToTest = new DataType[] {
defaultStock,
defaultWholesale,
defaultRetail,
defaultDelivery
}
// define logic
boolean checkIfAnyNegative(DataType [] data) {
boolean negativeValue = false;
int i = 0;
while (!negativeValue && i < data.length) {
negativeValue = data[i++] < 0;
}
return negativeValue;
}
Код выглядит более многословно и не требует пояснений. Вы даже можете создать массив в вызове метода, например так:
checkIfAnyNegative(new DataType[] {
defaultStock,
defaultWholesale,
defaultRetail,
defaultDelivery
});
Он более читабелен, чем «строка сравнения», а также имеет преимущество в производительности за счет короткого замыкания (за счет выделения массива и вызова метода).
Edit:
Еще большую читабельность можно достичь с помощью параметров varargs:
Подпись метода будет:
boolean checkIfAnyNegative(DataType ... data)
И звонок может выглядеть так:
checkIfAnyNegative( defaultStock, defaultWholesale, defaultRetail, defaultDelivery );