• java.lang.Class


    java.lang.Class

    一、Class类是什么
      Class是一个类,位于java.lang包下。
      在Java中每个类都有一个相对应的Class类的对象,换句话说:Java程序在启动运行时 一个XXX.java类经过编译生成XXX.class文件后,就会在JVM虚拟机中产生一个XXX类对应的Class类的对象,用于表示这个XXX类的类型信息。

    二、Class类常用的方法
      Class类是反射中的核心类,它有如下的方法:
        获取类中的属性:
          - getFields(): 获取类中public类型的属性
          - getField(String name): 获取类特定的方法,name参数指定了属性的名称
          - getDeclaredFields(): 获取类中所有的属性(public、protected、default、private),但不包括继承的属性。
          - getDeclaredField(String name): 获取类特定的方法,name参数指定了属性的名称

        获取类中的构造函数:
          - getConstructors():获取类中的公共方法
          - getConstructor(Class[] params): 获取类的特定构造方法,params参数指定构造方法的参数类型
          - getDeclaredConstructors(): 获取类中所有的构造方法(public、protected、default、private)
          - getDeclaredConstructor(Class[] params): 获取类的特定构造方法,params参数指定构造方法的参数类型

        获取类中的方法:
          - getMethods(): 获得类的public类型的方法
          - getMethod(String name, Class[] params): 获得类的特定方法,name参数指定方法的名字,params参数指定方法的参数类型
          - getDeclaredMethods(): 获取类中所有的方法(public、protected、default、private)
          - getDeclaredMethod(String name, Class[] params): 获得类的特定方法,name参数指定方法的名字,params参数指定方法的参数类型

        其它重要方法:
          - newInstance(): 通过类的不带参数 的构造方法创建这个类的一个对象
          - forName(String className): 获取className参数指定的类的class对象
          - forName(String className,boolean initialize,ClassLoader): 使用指定的类加载器获取className参数指定的类的class对象
          - getClassLoader(): 获取类加载器
          - getName(): 获取类名
          - getPackage(): 获取类所在的包名

    三、获取Class对象的三种方法
      第一种: 调用Class类的静态方法forName,比如 Class.forName("java.lang.String")
      第二种: 使用类的.class语法,比如 : Class cls = String.class
      第三种: 调用对象的getClass方法, 比如:String str = "123"; Class cls = str.getClass();
      (PS:在java.lang.Object类中定义了getClass()方法,因此对于任意一个Java对象,都可以通过此方法获得对象的类型)

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    Web 自动化测试(Selenium) PO 模型
    Web 自动化测试(Selenium) 鼠标和键盘操作以及浏览器等待
    Web 自动化测试(Selenium)进阶及八大元素定位
    web 自动化测试(Selenium) Xpath 和 Css 定位元素
    没有最全,只有更全的正则表达式集合(持续更新...)
    SQL优化第一篇
    C# 设置桌面为父窗口
    Spring Boot整合MybatisPlus逆向工程(MySQL/PostgreSQL)
    IDEA2020.2版本设置类和方法的自定义注释模板
    记一个Java多线程相关的面试题
  • 原文地址:https://www.cnblogs.com/xinhuaxuan/p/6019497.html
Copyright © 2020-2023  润新知