1.Java反射

一、基本概念

        Java 反射机制是 Java 语言的一个重要特性。在学习 Java 反射机制前,大家应该先了解两个概念,编译期和运行期。
        编译期是指把源码交给编译器编译成计算机可以执行的文件的过程。在 Java 中也就是把 Java 代码编成 class 文件的过程。编译期只是做了一些翻译功能,并没有把代码放在内存中运行起来,而只是把代码当成文本进行操作,比如检查错误。
        运行期是把编译后的文件交给计算机执行,直到程序运行结束。所谓运行期就把在磁盘中的代码放到内存中执行起来。
        Java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为 Java 语言的反射机制。简单来说,反射机制指的是程序在运行时能够获取自身的信息。在 Java 中,只要给定类的名字,就可以通过反射机制来获得类的所有信息。

二、Class类

        Class 类的一个实例表示 Java 的一种数据类型,包括类、接口、枚举、注解、数组、基本数据类型和 void。Class 没有公有的构造方法,Class 实例是由 JVM 在类加载时自动创建的。

        Class类获取方法

        String s="123";
        Class c1=s.getClass();
        Class c2=String.class;
        Class c3=Class.forName("java.lang.String");

三、类的相关信息

        通过Class 类可以获取一个类的所有信息

        类信息获取方法

        String s="123";
        Class c1=s.getClass();

        ClassLoader classLoader = c1.getClassLoader();//获取类加载器

        String simpleName = c1.getSimpleName();//获取简单名
        String name = c1.getName();//获取全名

        Constructor[] constructors = c1.getConstructors();//获取可访问构造器
        Constructor[] declaredConstructors = c1.getDeclaredConstructors();//获取全部构造器

        Field[] fields = c1.getFields();//获取可访问变量
        Field[] declaredFields = c1.getDeclaredFields();//获取全部变量

        Method[] methods = c1.getMethods();//获取可访问方法
        Method[] declaredMethods = c1.getDeclaredMethods();//获取全部方法

        Class[] classes = c1.getClasses();//获取可访问内部类
        Class[] declaredClasses = c1.getDeclaredClasses();//获取全部内部类

        Annotation[] annotations = c1.getAnnotations();//获取直接注解
        Annotation[] declaredAnnotations = c1.getDeclaredAnnotations();//获取直接及继承注解

        Class superclass = c1.getSuperclass();//获取父类

        Class[] interfaces = c1.getInterfaces();//获取实现接口

        int modifiers = c1.getModifiers();//获取修饰符

        Package aPackage = c1.getPackage();//获取包名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值