【发布时间】:2020-05-24 08:29:01
【问题描述】:
Java 可以做这样的事情吗?:
String methodName = "multiply";
MyMath myMath = new MyMath();
/* "methodName" is expanded before being called */
int answer = myMath.methodName(2, 3);
System.out.println(answer);
6
这种类型的功能/概念是否在称为“动态扩展”、“变量插值”、eval()(例如在各种脚本语言中)、反射、内省、Java bean 的编程语言中?
【问题讨论】:
-
据我所知,你不能。为什么需要它?
-
@c-an - 好吧,我正在尝试将方法名称放在属性文件中,例如。 "methodName = multiply" 然后在程序中调用它,而无需对其进行硬编码或使用
switch或if ... else if或工厂设计模式。 -
我猜在这种情况下,您需要使用参数并实现您想要实现的。
标签: java