我有一个功能:
fun1() {
System.out.print("hello");
}
Run Code Online (Sandbox Code Playgroud)
我想从用户或文件中读取一个字符串,如果"fun1()"出现该字符串,我会调用fun1.
我不想用switch语句来做这个,因为我有很多功能.
有什么方法可以使用字符串调用函数吗?
你可以在这里使用反射:
Method method = MyClass.class.getDeclaredMethod("fun1", new Class[] {});
method.invoke(this, null);
Run Code Online (Sandbox Code Playgroud)
但是,首先考虑一下,如果你可以避免使用反射,那么就做.反射带来了许多缺点,例如难以调试和渲染自动重构工具(例如Eclipse中的那些工具)实际上无用.
重新思考你的设计; 你可以通过更清晰的类分解,更好的多态性等来更好地解决问题.
| 归档时间: |
|
| 查看次数: |
3018 次 |
| 最近记录: |