java里边有new来创建一个对象,为什么还要Class.forName? java里边有new来创建一个对象,为什么还要Class.forName? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Class.forName()只是返回内存中类对象,也就是类代码的内存,而不是类的一个实例。你需要使用Class.forName("ClassName").newInstance()才能创建一个类的实例。另外Class.forName()可以指定自己的ClassLoader. Class.forName() 可以实现动态加载,new 是静态的 new 是在程序执行时生成的对象(也就是当程序执行到构造函数时)属静态生成的对象,而Class.forName是程序执行后(也就是在构造函数执行后)根据参数名动态加载类并通过".newInstance()动态生成的对象,这两者是有本质的不同的. 楼上的高手都讲解的很清楚了,这个要看具体情况,就如同到底java好还是c好一样,具体情况具体看待。 如果有个需求是根据类的名字来生成某个实例,用new就没有办法了,就可以用Class.forName了。 Class.forName这个在连接JDBC的时候有到的。有NEW是在你写好的类,或引用JDK的类时。用到的。想要用类,必须用new 来声明一个对象才可用类中方法或变量。除了你用spring. new的对象在编译环境中要通过必须在类路径中有,class.forName在编译时可以不在类路径中,所以class.forName指定了ClassLoader后,一个特殊作用就是在环境中查找某些类,例如jaxp就是通过这种方式确定xml解析器的。这2者的区别还是很大的,慢慢体会吧。初学者不用太深究。 看下那本<<Java深度历险》我也在看,深入jdk的书 java子类复写私有方法问题 java初学者,帮忙看看哪点错了。 一个我们课程设计的题目,实现一个卡的办理销售管理和挂失补办管理,这个设计思路是什么啊? 请问怎样从SQL取多个数据 jspSmartUpload 求助 大家看过来:【Java】字符串转换成日期型数据国际化问题 数组越界问题 一个基础问题 List(菜鸟问题) xml Thread.sleep()睡眠的准确时间是括号里的指定时间吗? 编码问题
有NEW是在你写好的类,或引用JDK的类时。用到的。想要用类,必须用new 来声明一个对象才可用类中方法或变量。除了你用spring.