import java.util.*;
class HashMethod {
public void foo() {
System.out.println("foo");
}
public void bar() {
System.out.println("bar");
}
public static void main(String[] args) throws IllegalAccessException {
HashMethod obj = new HashMethod();
Map<Character, java.lang.reflect.Method> methods = new HashMap<Character, java.lang.reflect.Method>();
try {
Character val = 'a';
java.lang.reflect.Method method = obj.getClass().getMethod("foo");
methods.put(val, method);
Character val2 = 'b';
java.lang.reflect.Method method2 = obj.getClass().getMethod("bar");
methods.put(val2, method2);
} catch (SecurityException e) {
System.out.print("exc1" + e.toString());
} catch (NoSuchMethodException e) {
System.out.print("exc2" + e.toString());
}
Scanner s = new Scanner(System.in);
Character val = s.next().charAt(0);
try {
java.lang.reflect.Method methodToRun = ((java.lang.reflect.Method) methods.get(val));
methodToRun.invoke(obj, null);
} catch (Exception e) {
System.out.print("invalid input");
}
}
}
「HashMap」の中に関数を配置する方法は?あるいは、 'HashMap'をビルドするためのpythonのような構文があるかどうか? – Bakuriu
PythonでJavaで同様のエレガントな方法で書いたようなものを実現する方法はありますか? – Alex