看下面的代码,主要是第二段代码:
- public class ReflectTest {
- public static void main(String... args) throws Exception {
- Method method1 = ReflectTest.class.getMethod("method1", Integer.class);
- method1.invoke(new ReflectTest(), 2);
-
- Method method2 = ReflectTest.class.getMethod("method2", int.class);
- method2.invoke(new ReflectTest(), 2);
- }
-
- public void method1(Integer value){
- System.out.println(value);
- }
-
- public void method2(int value){
- System.out.println(value);
- }
- }
复制代码
第一个调用没什么问题。
第二个调用为方法传的第二个参数是Integer(编译时装箱),但是方法还是调用成功。所以我觉得java在通过反射调用方法的时候开始会对包装器类做一下拆箱处理的。毕竟Integer不能直接赋给int。:) |
|