首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java可以取消对语句的引用吗?

Java可以取消对语句的引用吗?
EN

Stack Overflow用户
提问于 2020-02-08 19:35:06
回答 2查看 63关注 0票数 2

Java可以做这样的事情吗?

代码语言:javascript
复制
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?

EN

回答 2

Stack Overflow用户

发布于 2020-02-08 19:39:34

Java没有将此行为作为标准语言特性提供,但是可以使用the Reflection API来实现

代码语言:javascript
复制
MyMath myMath = new MyMath();
String methodName = "multiply";
Method m = MyMath.class.getMethod(methodName);
m.invoke(myMath, 2, 3);
票数 5
EN

Stack Overflow用户

发布于 2020-02-08 19:39:53

是的,这是可能的反射,但是性能很差(在Java Reflection Performance中得到确认)。

关于反射的说明:https://www.oracle.com/technical-resources/articles/java/javareflection.html

本文将介绍如何使用反射。对于您来说,“按名称调用方法”一节是最有趣的,但我建议您阅读整篇文章。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60126379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档