reg*_*ngi 5 java reflection integer primitive-types
我MyClass在包中有一个类,mypackage如下所示:
package mypackage;
public class MyClass{
public static myMethod (Integer i) {
return i + " is an Integer";
}
public static myMethod (int i){
return i + " is an int"
}
}
Run Code Online (Sandbox Code Playgroud)
还有一个 class Invoker,它看起来像这样:
public class Invoker{
public String call(String class_name, String method_name, Serializable[] parameters){
int p_amount = parameters.length;
Class<?> param_types = new Class[p_amount];
// Get types of parameters
for (int i = 0; i < p_amount; i++){
param_types[i] = parameters[i].getClass();
}
// Get method with that signature
Method m = Class.forName(class_name).getMethod(method_name, param_types);
// Invoke method with given parameters
m.invoke(null, parameters);
}
}
Run Code Online (Sandbox Code Playgroud)
以下是调用该方法时发生的情况:
int number = 3;
new Invoker().call("mypackage.MyClass", "myMethod", number)//->i is an Integer
Run Code Online (Sandbox Code Playgroud)
有没有办法指定我可以将方法int作为参数调用?
我的猜测是,当int作为Serializable对象传递时,它会自动解析为它的表亲,真正的对象Integer,但我不是 Java 专家......
更新
这与这里的问题不同,因为有一个直接调用,这里有一个方法在这些框之间int进入一个Integer。正如我之前提到的,这是我的想法,但希望其他人对此事的意见和知识。
是的,您可以使用int.class或Integer.TYPE来标识整数基元。
| 归档时间: |
|
| 查看次数: |
2109 次 |
| 最近记录: |