java - 使用java反射在循环中调用编号的函数名称

标签 java function reflection

我有一个问题: MyFirstClass.java

public class MyFirstClass{
  String strParam;
  MySecondClass secClass;
  //getters and setters
}

MySecondClass.java

public class MySecondClass{
  String p1Param;
  String p2Param;
  String p3Param;
  String p4Param;
//setters and getters
}

TestClass.java

public void doProcessing(MyFirstClass pObj){
  for(int i=0;i<3;i++){
  System.out.println() ;
  //###question is here
}

我想使用java反射并通过向g提供参数来调用for循环中的pObj.getP**Param()方法

Method m= cls.getMethod("getP"+(i+1)+"Param");
pObj.getSecClass.[ invokeMethod m ]

如何让它成为可能。 我不想使用 p*Params 数组。

提前致谢。

最佳答案

您确定这是您需要的吗?对我来说,您的代码似乎是当前在每项任务中滥用反射趋势的典型示例。为什么不使用数组或映射来存储属性p[0-9]+Param

数组就是为了做到这一点而发明的。它们提供一系列变量,按数字索引。

关于java - 使用java反射在循环中调用编号的函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5880941/

相关文章:

java - C++ 和 PHP 之间的通用桥梁

Java Glass Pain(这不是拼写错误)

javascript - 有没有更好的方法在两个独立的元素上运行这个函数?

Java Reflections - 使用 BigInteger 参数调用方法

go - 如何使用反射动态构建结构 slice

java - 不存在 while 循环(java 代码)

java - Powershell:使用 Process 对象捕获标准输出和错误

python - 在 Ruby 中使用高阶函数

c - 递归函数怎么会返回一些东西?

c# - 如何使用 reflection.emit 发出显式接口(interface)实现?