java反射之动态加载类

来源:互联网 发布:淘宝店铺客服几点上班 编辑:程序博客网 时间:2024/05/17 06:24

视频教程http://www.imooc.com/video/3733/0

可以看视频了解一下动态加载类的好处。

正常的java程序需要先编译在运行,如果向下面只有Main方法没有Word和Excel类是无法编译成功的,这样无疑对程序的扩展和运维是不利的。

class Office {public static void main(String[] args) {System.out.println("Hello World!");//new 创建对象 是静态加载,在编译时刻就需要加载所有的可能使用到的类//通过动态加载类可以解决该问题if ("Word".equals(args[0])){Word w = new Word();w.start();}if ("Excel".equals(args[0])){Excel e = new Excel();e.start();}}}

往下看看怎么动态加载。

class OfficeBetter {public static void main(String[] args) {try{//Dynamic class loading,Runtime loadingClass c = Class.forName(args[0]);//通过类类型,创建该类对象OfficeAble oa = (OfficeAble)c.newInstance();oa.start();}catch(Exception e){e.printStackTrace();}}}

interface OfficeAble{public void start();}

不要忘记先编译在运行

Word和Excel类什么时候用在编写就好了

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




0 0
原创粉丝点击