Java反射之静态加载和动态加载的简单实例
程序员文章站
2024-03-12 14:36:32
静态加载:
package com.imooc.加载类;
public class office_static {
public static void...
静态加载:
package com.imooc.加载类; public class office_static { public static void main(string[] args) { //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(); } catch (exception e) { e.printstacktrace(); } } }
以上就是小编为大家带来的java反射之静态加载和动态加载的简单实例的全部内容了,希望对大家有所帮助,多多支持~