反射机制

[color=red][/color]Teacher tea = new Teacher();
//tea对象得到Teacher对象
Class c1 =tea.getClass();
//通过类名.class关键字
Class c2 = Teacher.class;
//Class.forName
Class c3 = Class.forName("Teacher");
//所有可见的构造方法
Constructor[] con = c1.getConstructors();
//所有的构造方法
Constructor[] con1 = c1.getDeclaredConstructors();
//获得指定参数的可见的构造方法
Constructor<Student> con2 = c1.getConstructor(String.class);
//获得指定参数的所有构造方法
Constructor<Teacher> con3= c1.getDeclaredConstructor(String.class);
//使用构造方法创建老师对象
Teacher tea1 = con3.newInstance("张三");
//通过class对象获得所有可见的属性
Field[] fs = c.getFields();
//获得所有的属性,不管可见还是不可见
Field[] fs1 = c.getDeclaredFields();
//获得指定名称的可见的属性
Field f = c.getField("num");
//获得指定名称的属性,不管可不可见
Field f1 = c.getDeclaredField("name");
//设置不可见的属性可以操作
f1.setAccessible(true);
//通过class对象创建类的对象
Object obj = c.newInstance();
f1.set(obj, "王二小");
//获得所有的可见方法
Method[] ms = c.getMethods();
//获得所有的方法,不管可见不可见
Method[] ms1 = c.getDeclaredMethods();
//获得可见方法中指定名称的方法
Method m = c.getMethod("study", String.class);
[size=medium][/size]m.invoke(obj, "java");
数组对象
char[] arr = new char[20];
Class c = arr.getClass();
System.out.println(c.getName());
//通过反射创建10位int数组
int[] ab = (int[])Array.newInstance(int.class, 10);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值