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

网友投稿 251 2023-07-04


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

静态加载:

package com.imooc.加载类;

public class Office_Static {

public static void main(String[] args) {

http:////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();

} catchttp://h (Exception e) {

e.printStackTrace();

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅谈异常结构图、编译期异常和运行期异常的区别
下一篇:java 装饰模式(Decorator Pattern)详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~