java反射

运行时的类信息:人们想要在运行时获得类的信息的另一个动机,便是希望提供在跨网络的远程平台上创建和运行对象的能力。这被称为远程方法调用(RMI)

• 获得类的构造函数


 1.获得全部类的构造函数  
 Constructor<?>[] constructors = clazz.getDeclaredConstructors();

 2.获得public修饰的构造函数
  Constructor<?>[] publicC = clazz.getConstructors();
 
 3.获得指定的构造函数
  Constructor<?> cons = clazz.getDeclaredConstructor(new Class[] {String.class, int.class, int.class });

• 创建对象

   1.用Class对象的方法创建对象
  Object o = clazz.newInstance();

 2.用获得的构造函数创建对象
 Object o1 = cons.newInstance(luzhangfei, 12, 22);

• 获得类的方法


 1.获得类全部方法(不包含父类方法)
 Method[] methods = clazz.getDeclaredMethods();
 
 2.获得类的public修饰的方法(包含父类的public方法)
 Method[] methods2 = clazz.getMethods();
 
 3.获得指定的方法
 Method method = clazz.getMethod(test, String.class);
 
 调用方法
 method.invoke(o, hello);
 
   
• 获得成员变量
 
 1.获得类所有的成员变量
 Field[] fields = clazz.getDeclaredFields();
 
 2.获得类的public变量
 Field[] fields2 = clazz.getFields();

 3.获得类的指定的变量
 Field fields3 = clazz.getDeclaredField(age);
 
 取得变量的值/为其设定值
 
 fields3.set(o, 15);
 
 System.out.println(fields3.get(o));
 
 动态使用数组
 
Object arr = Array.newInstance(String.class, 2);

Array.set(arr, 0, hello);

Array.set(arr, 1, world);

for(int i = 0 ;i < 2 ;i++){

System.out.println(Array.get(arr, i));  

}


 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值