欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Java反射之静态加载和动态加载的简单实例

时间:2021-04-25 10:08:55|栏目:JAVA代码|点击:

静态加载:

package com.imooc.加载类;

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

这个程序编译时必须有Word和Excel这两个类存在才行,即使判断后用不到Excel也要加载

动态加载:

1、接口OfficeAble :

package com.imooc.加载类;

public interface OfficeAble {
	public void start();
}

2、Word实现接口:

package com.imooc.加载类;

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

}

3、Excel实现接口:

package com.imooc.加载类;

public class Excel implements OfficeAble{

	public void start(){
		System.out.println("excel start");
	}
}

4、Main方法

package com.imooc.加载类;

public class OfficeBetter {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try {
			//动态加载类,在运行时刻加载
			Class c = Class.forName(args[0]);//在运行配置里面输入com.imooc.加载类.Excel
			//通过类类型,创建该类对象(先转换为Word和Excel的共同接口OfficeAble)
			OfficeAble oa = (OfficeAble)c.newInstance();
			oa.start();
			
			//不推荐下面两种,因为不确定是加载Word还是Excel,要强转
//			Word word = (Word)c.newInstance();
//			word.start();
//			Excel excel = (Excel)c.newInstance();
//			excel.start();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

上一篇:Java中四种线程池的使用示例详解

栏    目:JAVA代码

下一篇:IDEA2020.3创建web工程的完整步骤

本文标题:Java反射之静态加载和动态加载的简单实例

本文地址:http://www.codeinn.net/misctech/108100.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有