• Java 反射的用法 有关Class类的解释


    
    
    package com.imooc.test;

    public class ClassDemo1 {
    public static void main(String[] args) {
    Foo fool = new Foo();//foo1就表示出来了
    //Foo 这个类也是一个实例对象,Class类的实例对象,如何表示呢
    //任何一个类都是Class的实例对象,这个实例对象有三种表示方式
    //第一种表示方式---> 实际在告诉我们任何一个类都有一个隐含的静态成员变量class
    Class cl = Foo.class;
    //第二种表达方式,已知该类的对象通过getClass方法
    Class c2 = fool.getClass();
    /* 官网解释,c1,c2 表示了Foo 类的类类型(class type)
    * 万事万物皆对象
    * 类也是对象,是Class类的实例对象
    * 这个对象我们称为该类的类类型
    */
    //不管c1 or c2都代表了Foo 类的类类型,一个类只可能是Class类的一个实例对象
    System.out.println(cl == c2);
    //第三种表达方式
    Class c3 = null;
    try {
    c3 = Class.forName("com.imooc.test.Foo");
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    }
    System.out.println(c2 == c3);
    //我们完全可以通过类的类类型创建该类的对象实例,通过c1.c2.c3创建Foo 的实例
    try {
    Foo foo = (Foo) cl.newInstance();//前提需要有无参数的构造方法
    foo.print();
    } catch (InstantiationException e) {
    e.printStackTrace();
    } catch (IllegalAccessException e) {
    e.printStackTrace();
    }


    }
    }
    class Foo{
    void print(){
    System.out.println("foo 打印输出");
    }
    }
     

     动态加载类

    1.编译时刻加载类是静态加载类,运行时刻加载类是动态加载类

  • 相关阅读:
    Oracle数据库配置
    匹配汉字与全角半角括号
    Linux任务调度crontab时间规则介绍
    配置文件方面的总结
    openlayers 4快速渲染管网模型数据
    openlayers 各种图层,持续更新
    简单的js定时器
    mysql client does not support authentication
    java 记录
    创建maven工程
  • 原文地址:https://www.cnblogs.com/gylhaut/p/8824394.html
Copyright © 2020-2023  润新知