Stack Overflow на русском Asked by Bober on December 7, 2020
Есть переменная var, которая имеет какое-то значение boolean.
Задача: вызвать метод с типом void в соответствии значению var
Пробовал много разных способов, но все время приходил либо к ошибке "not a statement", либо к необходимости добавления оператора присваивания, но к чему присваивать – неизвестно.
Вопрос: возможно ли построить такую конструкцию без использования if-else?
Пример:
public void function(boolean var) {
...
var ? functionOne() : functionTwo();
...
}
public void functionOne() {
...
}
public void functionTwo() {
...
}
Тернарный оператор - это сахар к: var x; if (cond) x = a; else x = b;
Поэтому ветки тернарника должны иметь значение.
Можно сделать что-то вроде:
static void callIf(boolean cond, Runnable ifTrue, Runnable ifFalse) {
(condition ? ifTrue : ifFalse).run();
}
callIf(var, () -> functionOne(), () -> functionTwo());
Correct answer by vp_arth on December 7, 2020
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP