У меня есть Java-метод, написанный с использованием лямбда-выражений, в котором мне нужно добавить больше условий, и мне было запрещено использовать классические if и elses. Это мой текущий код, который проверяет, имеет ли getInstrument правильный ENUM:
public static Predicate<Deal> isDeal() {
return i ->
i.getInstrument() == ENUM1
|| i.getInstrument() == ENUM2
|| i.getInstrument() == ENUM3;
}
К этому коду мне нужно добавить условие, которое проверяет, является ли i.getGroup()
нулевым, и затем продолжать проверять правильность перечислений. Мне также нужно добавить условие, что, если i.getGroup() != null and i.getGroup() != "NODEAL"
и i.getInstrument()
не является ENUM2 или ENUM3, он возвращает i. Вот как я мог бы написать это с классическим if и elses:
public static Predicate<Deal> is Deal() {
if ( i.getGroup() == null && i.getInstrument() == ENUM1
|| i.getInstrument() == ENUM2
|| i.getInstrument() == ENUM3) {
return i;
} else if ( i.getGroup() != null && i.getGroup() == "DEAL" &&
i.getInstrument() != ENUM2 || i.getInstrument() != ENUM3) {
return i;
}
}
Как я могу написать это с помощью лямбды?