У меня есть некоторый код, как это:Java: не-пустоты методы, как карты значения
public class A {
private final Map<String, Runnable> map = new HashMap<>();
public A() {
map.put("a",() -> a());
map.put("b",() -> b());
}
public int a() {
return 1;
}
public int b() {
return 2;
}
public int c(String s) {
// map.get(s).run(); <= returns void, but
// I need the result of the
// function paired to the string.
// What TODO?
}
}
Я не-недействительные функции (a()
, b()
) в качестве значений отображения, в паре с Strings. Мне нужно запустить функции и получить результат функций и вернуть их в функцию c()
. Функция run()
возвращает void
, поэтому я не могу получить от нее значение. Есть какой-либо способ сделать это?
Что именно вы хотите вернуть с 'c'? 1? 2? Что-то другое? – Tunaki
Например: public static void main (String [] args) { System.out.println (c ("a")); // Печать 1 - результат вызова a() } –
Почему вы не используете пользовательский интерфейс вместо «Runnable»? Но обратите внимание, что это «решение» проблемы, которую вы не обнаружили, выглядит * плохой * IMHO –