我是靠谱客的博主 任性酒窝,最近开发中收集的这篇文章主要介绍java动态加载类和静态加载类,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一.什么是动态加载类 什么是静态加载类

Class.forName 不仅表示类的类类型,还代表了动态加载类。编译时加载是静态加载类,

运行时加载是动态加载类。

请大家区分编译 运行。

二.为何要使用动态加载类

我们写了一个程序 并没有写A类和B类以及start方法 

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();
		}
	}
}


编译:


我们会发现,我们并不一定用到A功能或B功能,可是编译却不能通过。而在日常的项目中,如果我们写了100个功能,因为一个功能的原因而导致所有功能不能使用,明显使我们不希望的。在这里,为什么会在编译时报错呢?new 是静态加载类,在编译时刻就需要加载所有可能使用到的功能。所以会报错。而在日常中我们希望用到哪个就加载哪个,不用不加载,就需要动态加载类。

使用动态加载类时,我们不用定义100种功能,只需要通过实现某种标准(实现某个接口)。

代码:

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();
}


总结:推荐大家使用动态加载类。原因如上,即节省了代码,又简洁方便,安全。

学习java反射的时候 看到了这 理解的比较浅显  ,肯定有许多要补充的。慢慢学习 慢慢积累  欢迎评论

最后

以上就是任性酒窝为你收集整理的java动态加载类和静态加载类的全部内容,希望文章能够帮你解决java动态加载类和静态加载类所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部