我简要说明一下,我有一个如下的
一个如下所示的主方法:
每次我再次运行它时,它就会随意地输出“Right Call”或“Wrong Call”。
我需要确保每次我放置“foo”键时,它必须调用Foo()方法,而不是Boo()方法。
显然,这并没有解决我的“方法调用”问题。我该如何解决这个问题?我对反射还很陌生,我是否有什么不应该做的事情,或者我做错了什么?还是有更好的实现方法?
编辑:我也尝试过LinkedHashMap,但结果是相同的。
谢谢。
Dog
类:public class Dog
{
public void Foo()
{
System.out.println("Right Call");
}
public void Boo()
{
System.out.println("Wrong Call");
}
}
一个如下所示的主方法:
HashMap<String, Method> map = new HashMap<String, Method>();
Dog d = new Dog();
Method[] method = d.getClass().getMethods();
map.put("foo", method[0]);
Method a = map.get("foo");
try {
a.invoke(d, null);
} catch (IllegalAccessException | IllegalArgumentException
| InvocationTargetException e) {
e.printStackTrace();
}
每次我再次运行它时,它就会随意地输出“Right Call”或“Wrong Call”。
我需要确保每次我放置“foo”键时,它必须调用Foo()方法,而不是Boo()方法。
显然,这并没有解决我的“方法调用”问题。我该如何解决这个问题?我对反射还很陌生,我是否有什么不应该做的事情,或者我做错了什么?还是有更好的实现方法?
编辑:我也尝试过LinkedHashMap,但结果是相同的。
谢谢。