Java基础动态加载类

静态加载:直接编译所有类

动态加载:需要哪个类编译哪个

废话不多少直接上代码

创建一个简单类 并没有写A类和B类

public class Main{
	public static void main(String args[]){
		if("A".equals(args[0])){
			A a=new A();
			a.start();
		}
		if("B".equals(args[0])){
			B b=new B();
			b.start();
		}
	}
}

编译报错:

动态加载类:

public class Main{
	public static void main(String args[]){
		try{
			
			Class c=Class.forName(args[0]);
		
			All a=(All)c.newInstance();
			a.start();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}
class A implements All{
	public void start(){
		System.out.println("A....START");
	}
}
class B implements All{
	public void start(){
		System.out.println("B....START");
	}
}
//接口
interface All{
	public void start();
}

运行无错 只有调用到需要的类才会编译

猜你喜欢

转载自blog.csdn.net/qq_34351177/article/details/81635894