记忆角落

  • {{ item.name }}
  • 首页
  • 关于
  • 归档
  • 邻居
  • 捐赠

静态加载类和动态加载类

  • 郭良俊只狗
  • 2017-04-03
  • 0

1、new 出来的都是静态加载类,一招出错,全盘皆输。

如

class Office{
  pulbic static void mian(Stirng[] args){
    if("Word".equals(args[0])){
      Word w = new Word();
      w.start();
      }
   }
}

new 对象 都是静态加载的类,在编译时就需要全部加载需要用到的类,不管你用不用到...

所以你需要有Word的类...

需要解决就要用到动态加载类..
2、动态加载类

如何动态加载类呢

我们可以通过类类型,创建该类的对象

如先创建一个接口,让他的类去实现这个接口从而实现动态加载

public interface OfficeAble {
	public void start();
}
public class OfficeBetter {
	public static void main(String[] args){
		try {
			Class c = Class.forName(args[0]);
			OfficeAble oa = (OfficeAble) c.newInstance();
			oa.start();
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}
}
public class Word implements OfficeAble{

	public void start() {
		// TODO Auto-generated method stub
		
	}
	
}

所以以后需要加载什么类,我们都可以去创建一个这个类类型去动态加载....

Class c = Class.forName(args[0]);
OfficeAble oa = (OfficeAble)c.newInstance();//OfficeAble定义的功能类型接口

 

© 2012 - 2023 记忆角落 网站统计
Theme by Wing
粤ICP备14056850号-1 又拍云CDN赞助