美文网首页
Java反射——动态加载类

Java反射——动态加载类

作者: depers | 来源:发表于2018-05-06 10:55 被阅读15次

一、静态加载类

下面通过new关键词直接创建的对象就是静态加载类,在编译时刻就需要加载所有的可能使用的类。

class Office{
 
    public static void main(String[] args){
 
        // new创建的对象 是静态加载类,在编译时刻就需要加载所有的可能使用的类。
        if ("Word".equals(args[0])) {
            Word word = new Word;
            word.start();
        }
 
        if ("Excel".equals(args[0])) {
            Excel excel = new Excel();
            excel.start();
        }
    }
}

我们通过javac来编译一下,这时就会报错。说Word和Excel对象找不到。

二、动态加载类

下面通过forname函数得到的这个类,只会在运行时才加载。

class OfficeBetter{
 
    public static void main(String[] args) {
        try{
            // 动态加载类,在运行时刻加载
            Class c = Class.forName(args[0]);
            // 通过类类型,创建该类对象
            OfficeAble o = (OfficeAble)c.newInstance();
            o.start();
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }
}

为了实现演示效果,这里我们有编写了一个接口OfficeAble 。

public interface OfficeAble{
    void start();
}

此时,我们分别编译OfficeBetter.java是不会报错的。然后我们编写实现OfficeAble接口的Word类。

public class Word implements OfficeAble{
     
    public void start(){
        System.out.println("word...start");
    }
 
}

然后编译Word.java文件。

此时我们在控制台输入:

14_20170923173043_834.png

运行时才会加载Word类。

相关文章

  • Java基础:反射

    反射注解动态代理相关阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 ...

  • Java反射

    一. Class类 二. Java动态加载类 三. Java获取方法信息 四. Java方法反射的基本操作

  • JAVA-Reflect

    一、Class类的使用 二、Java动态加载类 三、Java获取方法信息 四、Java方法的反射

  • 2018-08-30

    Java反射 类的反射方法: new 创建对象 是静态加载类,在编译时刻就需要加载所有的可能使用到的类。 通过动态...

  • Java基础:类加载器

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 什么是类加...

  • 知识总结之 插件化基础 java反射与代理

    Java平台的反射机制是代码动态加载和调用的基本途径,在安卓系统源码中也用到了大量的反射动态加载类。反射也是安卓平...

  • Java基础:注解

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 概述 注解...

  • Java基础:动态代理

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 概述 在运行时,...

  • Java反射——动态加载类

    一、静态加载类 下面通过new关键词直接创建的对象就是静态加载类,在编译时刻就需要加载所有的可能使用的类。 我们通...

  • Java基础再回顾-Java反射

    静态加载和动态加载 为了更好地了解Java反射,我们先来理解一下Java的静态加载和动态加载。 静态加载 静态加载...

网友评论

      本文标题:Java反射——动态加载类

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