Ответ 1
Самое лучшее, что вы можете сделать с библиотекой Java, я думаю:
if (asList(a, b, c, d).contains(null)) {
У меня есть четыре переменные, и я хочу проверить, является ли какой-либо из них нулевым. Я могу сделать
if (null == a || null == b || null == c || null == d) {
...
}
но я действительно хочу
if (anyNull(a, b, c, d)) {
...
}
но я не хочу писать это сам. Эта функция существует в любой общей библиотеке Java? Я проверил Commons Lang и не видел этого. Он должен использовать varargs для принятия любого количества аргументов.
Самое лучшее, что вы можете сделать с библиотекой Java, я думаю:
if (asList(a, b, c, d).contains(null)) {
Я не знаю, если это в обычном режиме, но для записи требуется около десяти секунд:
public static boolean anyNull(Object... objs) {
for (Object obj : objs)
if (obj == null)
return true;
return false;
}
Вы спросили в комментариях, куда поставить статический помощник, я предлагаю
public class All {
public static final boolean notNull(Object... all) { ... }
}
а затем используйте квалифицированное имя для вызова, например
assert All.notNull(a, b, c, d);
То же самое можно сделать с помощью класса Any
и методов типа isNull
.
В Java 8 вы можете сделать это еще шире:
if (Stream.of(a, b, c, d).anyMatch(Objects::isNull)) { ... }
или вы можете извлечь его для метода:
public static boolean anyNull(Object... objects) {
return Stream.of(objects).anyMatch(Objects::isNull);
}
а затем используйте его в своем коде следующим образом:
if (anyNull(a, b, c, d)) { ... }