反射

1、获得字节码的一种方法 

     1.1 第一种方法 

         Class clazz = Class.forName("包名+类名");

     1.2 第二种方法

Class clazz = new People().getClass();

1.3 第三种方法

Class clazz = People.class;

2、反射类的构造函数

2.1 情况一 不带参数  public Person(){};

Class clazz = Class.forName("Person)";

Constructor c = clazz.getConstrucotr(null);

Person p = c.newInstance(null);

2.2 情况二  带参数 public Person(String name){}

Class clazz = Class.forName("Person");

Constructor c = clazz.getConstructor(String.class);

Person p = c.newInstance("小明");

2.3 情况三 多个参数 public Person*(String name,int age){}

Class clazz = Class.forName("Person");

Constructor c = clazz.getConstructor(String.class, int.class);

Person p = c.newInstance("小明",22);

2.4 情况四 私有的 private Person(List list){}

Class clazz = Class.forName("Person");

Constructor c = clazzgetDeclaredConstructor(List.class);

c.setAccessible(true);

Person p = c.newInstance(new ArrayList());

3、反射类的方法 

3.1 情况一 不带参数 public void aa1()

Person p = new Person();

Clazz clazz = Class.forName("Person");

Method m = clazz.getMethod("aa1",null);

m.invoke(p,null);

3.2 情况二 带多个参数 public void aa2(String name,int age){}

Person p = new Person();

Class clazz = Class.forName("Person");

Method m = clazz.getMethod("aa2",String.class,int.class);

m.invoke("小明",22);

3.3 情况三 参数为数组 public Class[]  aa3(String name, int[] password){}

Person p = new Person();

Class clazz = Class.forName("Person");

Method m = clazz.getMethod("aa3",String.class,int[].class);

m.invoke(p,"小明",new int[]{1,2,3,});

3.4 情况四 私有的 private void aa4(InputStream in){}

Person p = new Person();

Class clazz = Class.forName("Person");

Method m = clazz.getDeclaredMethod("aa3",InputStream.class);

m.setAccessible(true);

m.invoke(p,new FileInputStream("c://text.txt"));

3.5 情况五 静态方法 public void static aa1(int num){}

Class clazz = Class.forName("Person");

Method m = clazz.getMethod("aa3",int.class);

m.invoke(null,22);

3.6 情况六 public static void main(String[] args){}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值