美文网首页
Java-反射获取完整的类信息

Java-反射获取完整的类信息

作者: 橘子周二 | 来源:发表于2019-08-19 17:15 被阅读0次

纯API记录

  • 反射获取类信息日志:
package com.stu.java.reflection;
public final class RelectionTest {
private java.lang.String name;
private int age;
private boolean gender;
private java.lang.String desc;
public com.stu.java.reflection.RelectionTest ( ) {}
public com.stu.java.reflection.RelectionTest ( java.lang.String p0,  int p1,  ) {}
public java.lang.String getName( ) {}
public void setName( java.lang.String mp0) {}
public int getAge( ) {}
public void setAge( int mp0) {}
public boolean isGender( ) {}
public void setGender( boolean mp0) {}
public java.lang.String getDesc( ) {}
public void setDesc( java.lang.String mp0) {}
}

  • 准备一个测试类 RelectionTest
package com.stu.java.reflection;

final public class RelectionTest {

    private String name;
    private int age;
    private boolean gender;
    private String desc;
    
    public RelectionTest(){}
    
    public RelectionTest(String name, int age) {
        this.name = name;
        this.age = age;
    }

···下面是 setter getter方法

  • 使用反射获取完整类信息
    private static void relectionClassInfo() throws Exception {

        Class<RelectionTest> c = (Class<RelectionTest>) Class.forName("com.stu.java.reflection.RelectionTest");
        //获取包信息
        Package pg = c.getPackage();
        LogUtils.sysPrintln("package %s;", pg.getName());

        //获取类修饰符 public/ final 
        int m = c.getModifiers();
        LogUtils.sysPrint(Modifier.toString(m));

        //判断类型
        if (Modifier.isInterface(m)) {
            LogUtils.sysPrint(" interface ");
        } else {
            LogUtils.sysPrint(" class ");
        }

        LogUtils.sysPrintln(c.getSimpleName() + " {");


        //获取类的属性
        Field[] fields = c.getDeclaredFields();
        for (Field f : fields) {
            //属性 修饰符
            LogUtils.sysPrint(Modifier.toString(f.getModifiers()));
            //属性类型
            LogUtils.sysPrint(" " + f.getType().getName());
            //属性名称
            LogUtils.sysPrintln(" " + f.getName() + ";");
        }
        //获取构造器
        Constructor[] constructors = c.getDeclaredConstructors();
        for (Constructor con : constructors) {
            LogUtils.sysPrint(Modifier.toString(con.getModifiers()));
            LogUtils.sysPrint(" " + con.getName() + " (");
            //获取构造器参数
            Class<?>[] ps = con.getParameterTypes();
            for (int i = 0; i < ps.length; i++) {
                Class<?> cl = ps[i];
                LogUtils.sysPrint(" " + cl.getName() + " p%s, ", i);
            }
            LogUtils.sysPrintln(" ) {}");
        }
        //获取成员方法
        Method[] methods = c.getDeclaredMethods();
        for (Method md : methods) {
            LogUtils.sysPrint(Modifier.toString(md.getModifiers()));
            //获取返回值类型名称
            LogUtils.sysPrint(" " + md.getReturnType().getName());
            LogUtils.sysPrint(" " + md.getName() + "( ");
            //获取方法参数
            Class<?>[] mPs = md.getParameterTypes();
            for (int i = 0; i < mPs.length; i++) {
                Class<?> mp = mPs[i];
                LogUtils.sysPrint(mp.getName() + " mp%s", +i);
            }
            LogUtils.sysPrintln(") {}");

        }
        LogUtils.sysPrintln("}");

    }


END

参考:https://github.com/HarkBen/JavaSE6Tutorial
补充了获取构造参数及方法参数

相关文章

  • Java-反射获取完整的类信息

    纯API记录 反射获取类信息日志: 准备一个测试类 RelectionTest 使用反射获取完整类信息 END 参...

  • Java反射基础

    使用反射获取类的信息 反射获取类的信息是通过Class类获取的,常用方法: String getName() 获...

  • 胖哥说反射 上卷

    我来学习反射 1.为什么我们要学习反射? 通过反射机制可以获取到一个类的完整信息,例如:所有(包含private修...

  • Java反射和IO流知识点很基础,你真的融会贯通吗???

    反射 1. 概念 官方解释:反射是指在程序运行过程中,动态的获取类的信息,并且访问 我们通过反射还是获取类的信息(...

  • Java 中的反射

    反射的概念 根据某个对象来获取该对象所对应的类的完整信息。 反射的功能 可以判断运行时对象所属的类;可以判断运行时...

  • 反射学习

    反射 在运行时动态的获取类的完整信息增加程序的灵活性JDK 动态代理使用了反射 概述 JAVA反射机制是在运行状态...

  • Java 学习基础篇 ---- Java反射与泛型

    一、反射 通过Class实例获取 class 信息的方法称为反射(Reflection)。 (一) Class 类...

  • java反射-第一篇

    一、什么是反射 所谓的反射简单来说就是在程序运行中,动态的获取一个类的信息,并进行操作。 二、怎样动态获取到类信息...

  • 2020-07-04【反射】

    类加载 类加载器 反射概述 获取Class类的对象 反射获取构造方法并使用 反射获取成员遍历并使用 反射获取成员方...

  • java 反射-类

    使用java反射机制可以在运行时期(runtime)检查java类的信息,通过获取类的信息你可以获取以下信息:1....

网友评论

      本文标题:Java-反射获取完整的类信息

      本文链接:https://www.haomeiwen.com/subject/dzdesctx.html