newInstance()实际上是把new这个方式分解为两步。 1. 调用Class加载方法加载某个类-----class.forname() 2. 实例化类--------newInstance() eg: A a = (A)Class.forName("pacage.A").newInstance(); //注意,包中是绝对包明
也可以写成如下形式: class c = Class.forName(“Example”); 优:获得更好的灵活性,很好的一种降耦手段。 new:关键字 newInstance():方法 ###################################################### JVM的角度: new的时候,类可以没有被加载。 newInstance()的时候,必须: 1、这个类已经加载; 2、这个类已经连接。 而完成上面两个步骤的正是Class的静态方法forName()所完成的。 ###################################################################### 为什么会有两种创建对象方式? 主要是考虑到软件的可伸缩、可扩展和可重用等软件设计思想。 Java中工厂模式经常使用newInstance()方法来创建对象。 eg: 甚至可以更换Example的兄弟类Example2 , Example3 , Example4……,只要他们继承ExampleInterface就可以。 |
newInstance()方法和new关键字的区别
最新推荐文章于 2023-02-15 14:55:10 发布