A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

看下面的代码,主要是第二段代码:
  1. public class ReflectTest {
  2.         public static void main(String... args) throws Exception {
  3.                 Method method1 = ReflectTest.class.getMethod("method1", Integer.class);
  4.                 method1.invoke(new ReflectTest(), 2);
  5.                
  6.                 Method method2 = ReflectTest.class.getMethod("method2", int.class);
  7.                 method2.invoke(new ReflectTest(), 2);
  8.         }
  9.        
  10.         public void method1(Integer value){
  11.                 System.out.println(value);
  12.         }
  13.        
  14.         public void method2(int value){
  15.                 System.out.println(value);
  16.         }
  17. }
复制代码


第一个调用没什么问题。
第二个调用为方法传的第二个参数是Integer(编译时装箱),但是方法还是调用成功。所以我觉得java在通过反射调用方法的时候开始会对包装器类做一下拆箱处理的。毕竟Integer不能直接赋给int。:)

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马