Java反射中,关于Class.forName()、打包和发布有点疑问。
1、JDBC中Class.forName()怎么就不要newInstance(),下面就要?
mathOperation = (MathOperation) Class.forName("com.imooc.reflect." + op).newInstance();
2、为什么说“反射不用重新打包、发布”?新加的类是源代码啊,而运行的不是字节码吗,字节码不打包、发布哪里来呢?
22
收起
正在回答
1回答
同学你好
1、Class.forName()与newInstance()方法的作用是不一样的,Class.forName()方法将指定的类加载到jvm,并返回对应Class对象,而newInstance通过默认构造方法创建该类的对象,在JDBC中只需要将Driver类加载进内存即可,所以无需使用newInstance()。
注:关于Class.forName()与newInstance()方法的具体使用可观看下一节课程:https://class.imooc.com/lesson/2086#mid=49480
2、“反射不用重新打包、发布”这句话的具体使用场景在哪里呢,还请同学再具体描述一下问题。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星