欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-03-13 10:13:15
静态加载: package com.imooc.加载类; public class office_static { public static void...

静态加载:

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反射之静态加载和动态加载的简单实例的全部内容了,希望对大家有所帮助,多多支持~