我是靠谱客的博主 鲤鱼身影,最近开发中收集的这篇文章主要介绍java反射动态_Java反射——动态加载类,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、静态加载类

下面通过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文件。

此时我们在控制台输入:

f73d3a2e93e9

14_20170923173043_834.png

运行时才会加载Word类。

最后

以上就是鲤鱼身影为你收集整理的java反射动态_Java反射——动态加载类的全部内容,希望文章能够帮你解决java反射动态_Java反射——动态加载类所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部