JAVA 反射 API 入门

概念

反射机制指在程序运行过程中,对任意一个类都能获取其所有属性和方法,并且对任 意一个对象都能调用其任意一个方法。这种动态获取类和对象的信息,以及动态调用对象 的方法的功能被称为Java语言的反射机制。

 

Java的反射API

◎ Constructor类:表示类的构造方法。
◎ Class类:用于获取类的属性、方法等信息。
◎ Field类:表示类的成员变量,用于获取和设置类中的属性值。
◎ Method类:表示类的方法,用于获取方法的描述信息或者执行某个方法。

 

代码样例

 


import java.lang.annotation.Target;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class ClassReflex {

    public static void main(String[] args) throws Exception {
        // 获取 Class 方式
        Class clazz = Class.forName("com.basis.Persion");

        // 获取构造方法
        Constructor [] constructors = clazz.getDeclaredConstructors();

        Constructor c = clazz.getDeclaredConstructor(String.class);

        // 获取成员属性
        Field[] fields = clazz.getDeclaredFields();

        for (Field field : fields){
            //验证字段的注解是否是Target注解 [可更换]
            if(field.isAnnotationPresent(Target.class)){
                // 获取注解 进行业务处理
                Target target = field.getAnnotation(Target.class);
                System.out.println(target.value());
            }
        }

        // 获取方法属性
        Method[] methods = clazz.getDeclaredMethods();

        // 通过 Class实例化
        Persion persion = (Persion)clazz.newInstance();

        // 通过 构造方法实例化
        persion = (Persion)c.newInstance("Li");

        // 调用方法
        Method method = clazz.getDeclaredMethod("",String.class);

        method.invoke(persion,"BY");


    }
}

 

 

 

 

 

 

 

扫描二维码关注公众号,回复: 11032054 查看本文章

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

发布了336 篇原创文章 · 获赞 846 · 访问量 41万+

猜你喜欢

转载自blog.csdn.net/zhanglong_4444/article/details/104797540