作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我阅读了有关 java.öang.reflect 的教程,并找到了一种从类获取方法并使用给定参数调用它的方法,如下所示:
Method method = /*some initialization*/;
Object returnValue = method.invoke(null, "parameter-value1");
这会调用静态方法“method”,该方法将“parameter-value1”作为其唯一参数。
现在已经很简洁了,但是还不够动态。我想调用一个只有方法对象的方法,并插入未指定数量的参数。假设我有 Method 方法
和 Object[] 参数
(用作调用 method
的参数)。
是否可以编写一个简短的方法来使用反射来调用具有给定参数的任何方法?如果是这样:如何实现这一目标?
最佳答案
不,这是不可能的。您可以使用给定的Object[]
作为参数来调用该方法。但有一些限制:
幸运的是,这两个都是已知的,感谢 Method#getParameterTypes()
:
Class<?>[] parameterTypes = someMethod.getParameterTypes();
int parameterCount = parameterTypes.length;
关于java - 如何在不知道参数数量的情况下使用 java.lang.reflect 调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36320233/
我是一名优秀的程序员,十分优秀!