您的位置:首页 > 编程语言 > Java开发

java动态加载

2016-07-08 19:01 441 查看
interface OfficeAble{
public void start();
}


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


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


class Office{
public static void main(String[] args){
try{
Class c=Class.forName(args[0]);
OfficeAble oa=(OfficeAble) c.newInstance();
oa.start();
}catch(Exception e){
e.printStackTrace();
}
}
}


在cmd中输入

javac OfficeAble.java
javac word.java
javac Office.java
java Office word


就会出现word…start

这里并没有加载excel但是程序却可以编译运行,而当用word w=new word();时,就会报错。new创建对象是静态加载类,在编译时刻就需要加载所有可能需要用到的类。

而Class.forName(“类的全称”);属于动态加载,不需要再编译时刻加载所有可能用到的类。

码代码的时候犯了一点小错误:

1.class word{

}

注意class小写

2.interface小写

3.Class c=Class.forName(“word”);

注意之后实例化类c的时候要c.getInstance();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java