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.
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!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

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

Hot Article

Hot Tools

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
Small size, syntax highlighting, does not support code prompt function

SublimeText3 English version
Recommended: Win version, supports code prompts!

SublimeText3 Linux new version
SublimeText3 Linux latest version

Notepad++7.3.1
Easy-to-use and free code editor
