java反射机制
2020-12-13 02:02
标签:cto null protect 属性 结果 span cte 获取 作用 1. 什么是反射 2一切反射相关的代码都从获得类(java.lang.Class)对象开始 结果 结果 2.3 对象.getClass() 结果 3. 反射三大作用(java.lang.reflect.*) Constructor.getConstructor/Constructor.getDeclaredConstructor 结果 3.2 动态调用方法 结果 3.3 读写属性 结果 获取修饰符之后返回的是int类型,并且是一个常量值, 在java中修饰符有11种(6个常用的和5个不常用的) 常用的修饰符为:public private protected friendly abstract final 不常用的修饰符为: native strictfp synchronizend volatile transiend 结果(1代表的修饰符为public) java反射机制 标签:cto null protect 属性 结果 span cte 获取 作用 原文地址:https://www.cnblogs.com/xmf3628/p/11024550.html
反射java语言中的一种机制,通过这种机制可以动态的实例化对象、读写属性、调用方法
2.1 Class.forName(完整类名) Class clzz=Class.forName("com.zking.refect.Student");
System.err.println(clzz);
class com.zking.refect.Student
2.2 类名.classClass clzz=Student.class;
System.err.println(clzz);
class com.zking.refect.Student
Student s = new Student();
Class clzz = s.getClass();
System.out.println(clzz);class com.zking.refect.Student
3.1 实例化对象
c.newInstance()
注:一定要提供无参构造器Class
调用无参构造方法创建了一个学生对象
Method m;
m.invokeStudent stu=new Student();
Class clz=stu.getClass();
Method m=clz.getDeclaredMethod("hello");
m.invoke(stu);
你好!我是null
Field set/getStudent stu=new Student("s002","zs");
Class clz=stu.getClass();
Field field=clz.getDeclaredField("age");
field.set(stu, 26);
System.out.println(stu);
Student [sid=s002, sname=zs, age=26]
4. 访问修饰符Student stu=new Student();
Class clz=stu.getClass();
//获取age的修饰符
Field age=clz.getField("age");
System.out.println(age.getModifiers());
1
private String sid;
private String sname;
public Integer age;