zoukankan      html  css  js  c++  java
  • 反射机制(1)认识Class类

    认识Class类:

    正常情况下,必须指定类的完整路径才能实例化对象,但是java中也允许通过一个对象找到其所在类的信息。这实际就是class类的功能。

    package 类集;
    
    class X{
    };
    public class test1{
        public static void main(String args[]){
            X x = new X() ;    // 实例化X类的对象
            System.out.println(x.getClass().getName()) ;    // 得到对象所在的类
        }
    }

    运行结果:

    类集.X

    object类有如下优点:

    CLASS类

      Class本身表示一个类本身,通过class可以得到一个类中完整结构,包括此类的方法定义,方法属性等。

    常用方法:

    实例化class类对象的三种方法:

    1,通过forName(包。类名称)方法。

    2,类。class  

    3,对象。getClass()

    一,其中forName定义如下:实例化是forName(包.类名称)

    public static Class<?> forName(String className)
                            throws ClassNotFoundException

    可见,使用forName()需要处理异常。

    二,getClass()是object类的方法,对象.getClass()

    三,类。class。

    四,通过getName(),可以获取类名称。

    如下例子:

    package 类集;
    
    class X{
    };
    public class test1{
        public static void main(String args[]){
            Class<?> c1 = null ;        // 指定泛型
            Class<?> c2 = null ;        // 指定泛型
            Class<?> c3 = null ;        // 指定泛型
            try{
                // 以下的操作形式是在开发中最常用的一种形式
                c1 = Class.forName("类集.X") ;  //forName(包.类名称)
            }catch(ClassNotFoundException e){
                e.printStackTrace() ;
            }
            c2 = new X().getClass() ;        // 通过Object类中的方法实例化
            c3 = X.class ;    // 通过类.class实例化
            System.out.println("类名称:" + c1.getName())  ;    // 得到类的名称
            System.out.println("类名称:" + c2.getName())  ;    // 得到类的名称
            System.out.println("类名称:" + c3.getName())  ;    // 得到类的名称
        }
    }

    一旦实例化Class类后,即可进行反射的进一步操作。

    总结

    1,了解class类的作用:反射源头,

    2,三种class类的实例化方式,要以forName()重点掌握,还有 类.class

  • 相关阅读:
    MySql模糊查询like通配符使用详细介绍
    使用powershell批量添加Qt的文件(生成pro)
    宏定义的教训
    使用powershell批量添加Keil和IAR的头文件路径
    python和数据科学(Anaconda)
    CDCE913产生任意频率
    QT中检索设定目录下所有指定文件的方法
    QT中将ASCII转换为对应数值的方法
    STM8如何使用自带的bootloader
    QT中使用函数指针
  • 原文地址:https://www.cnblogs.com/alsf/p/6538482.html
Copyright © 2011-2022 走看看