search
HomeJavaJavaBaseWhat is reflection mechanism in java

The Java reflection mechanism is that 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.

What is reflection mechanism in java

This function of dynamically obtaining information and dynamically calling object methods at runtime is called Java reflection mechanism. (Recommended Learning: Java Course )

Class Class supports the concept of reflection with the Java.lang.reflet class library with the java.lang.reflet class library. Constructor class (each class implements the Member interface). Objects of these types are created by the JVM at runtime to represent corresponding members of unknown classes.

So you can use Constructor to create new objects, use the get() and set() methods to read and modify fields associated with Field objects, and use the invoke() method to call methods associated with Method objects.

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, without knowing anything at compile time.

Obtain class information through the reflection mechanism

Create an object through the reflection mechanism. Before creating the object, you must obtain the constructor object of the object and create the corresponding class through the constructor object. Example.

The following code creates an object instance with no participation and parameters during runtime. Since the getConstructor() method and the newInstance() method throw a lot of exceptions (you can view them through the source code), here is the abbreviation of directly throwing an Exception, the same below.

package com.jas.reflect;

import java.lang.reflect.Constructor;

public class ReflectTest {
    public static void main(String[] args) throws Exception {

        Class clazz = null;
        clazz = Class.forName("com.jas.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);
    }

}

Output:

无参构造器 Run...........
有参构造器 Run...........Appl

The above is the detailed content of What is reflection mechanism in java. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor