Home  >  Article  >  Java  >  What is Java’s reflection mechanism and how to obtain it

What is Java’s reflection mechanism and how to obtain it

王林
王林forward
2023-05-10 19:07:041641browse

Java reflection mechanism

Java reflection mechanism is in the running state. For any class, all properties and methods of this class can be obtained, and for any object, any of its properties and methods can be called. method. This function of dynamically obtaining information and dynamically calling object methods at runtime is called Java's reflection mechanism.

The Class class supports the concept of reflection together with the java.lang.reflect class library, which contains the Field, Method, and Constructor classes (each class implements the Member interface). Objects of these types are created by the JVM at runtime to represent corresponding members of unknown classes. This way you can use the Constructor to create new objects, use the get() and set() methods to read and modify the fields associated with the Field object, and use the invoke() method to call methods associated with the Method object.

In addition, you can also call convenient methods such as getFields() getMethods() and getConstructors() to return an array of objects representing fields, methods, and constructors. In this way, the information about the anonymous object
can be completely determined at runtime, and there is no need to know anything at compile time.

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

Three ways to obtain reflection in Java

1. Implement the reflection mechanism through the new object

2. Implement the reflection mechanism through the path

3. Class name implements reflection mechanism

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());
    }
}

The above is the detailed content of What is Java’s reflection mechanism and how to obtain it. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete