您好,欢迎访问一九零五行业门户网

Java的反射机制是什么及怎么获取

java反射机制java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的所有属性和方法,对于任意一个对象都能够调用它的任意一个属性和方法。这种在运行时动态的获取信息以及动态调用对象的方法的功能称为 java 的反射机制。
class 类与 java.lang.reflect 类库一起对反射的概念进行了支持,该类库包含了 field,method,constructor 类 (每个类都实现了 member 接口)。这些类型的对象时由 jvm 在运行时创建的,用以表示未知类里对应的成员。这样你就可以使用 constructor 创建新的对象,用 get() 和 set() 方法读取和修改与 field 对象关联的字段,用invoke() 方法调用与 method 对象关联的方法。
另外,还可以调用 getfields() getmethods() 和getconstructors() 等很便利的方法,以返回表示字段,方法,以及构造器的对象的数组。这样匿名对象的信息
就能在运行时被完全确定下来,而在编译时不需要知道任何事情。
package com.microspringboot.readinglist.reflect;import java.lang.reflect.constructor;public class reflecttest {    public static void main(string[] args) throws exception {        class clazz = null;        clazz = class.forname(com.microspringboot.readinglist.reflect.fruit);        constructor<fruit> constructor1 = clazz.getconstructor();        constructor<fruit> constructor2 = clazz.getconstructor(string.class);        fruit fruit1 = constructor1.newinstance();        fruit fruit2 = constructor2.newinstance(apple);    }}class fruit {    public fruit() {        system.out.println(无参构造器 run...........);    }    public fruit(string type) {        system.out.println(有参构造器 run........... + type);    }}
运行结果: 无参构造器 run……….. 有参构造器 run………..apple
java获取反射的三种方法1.通过new对象实现反射机制
2.通过路径实现反射机制
3.通过类名实现反射机制
package com.microspringboot.readinglist.reflect;public class student {    private int id;    private string name;    protected boolean sex;    public float score;}
package com.microspringboot.readinglist.reflect;public class get {    //获取反射机制三种方式    public static void main(string[] args) throws classnotfoundexception {        //方式一(通过建立对象)        student student = new student();        class stuclass1 = student.getclass();        system.out.println(stuclass1.getname());        //方式二(所在通过路径-相对路径)        class stuclass2 = class.forname(com.microspringboot.readinglist.reflect.student);        system.out.println(stuclass2.getname());        //方式三(通过类名)        class stuclass3 = student.class;        system.out.println(stuclass3.getname());    }}
以上就是java的反射机制是什么及怎么获取的详细内容。
其它类似信息

推荐信息