首页 > 编程语言 > 详细

Java中的Class.forName,new 以及 newInstance

时间:2020-05-21 13:25:44      阅读:39      评论:0      收藏:0      [点我收藏+]

Class.forName接受一个字符串,然后搜索以这个字符串为名字的类,如果有的话则返回一个这个字符串为类名的Class对象将其加载到JVM中,如果没有则抛出异常。

new是关键字,如果这个类没有加入JVM就先加入JVM然后生成一个实例对象。

newInstance则把JVM中存在的对象进行实例化,这个特点在工厂模式下很有用。我们可以在调用class的静态加载方法forName时获得更好的灵活性,提供给了一种降耦的手段。

可以认为new = forName + newInstance,先加载,再实例化

 1 class Test {
 2     static {
 3         System.out.println("已经被加载");
 4     }
 5     Test() {
 6         System.out.println("已经分配");
 7     }
 8 }
 9 
10 public class Java25_ClassName {
11     public static void main(String[] args) throws ClassNotFoundException {
12         //Test1
13         try {
14             Class<?> c = null;
15             c = Class.forName("Test");
16         } catch (ClassNotFoundException e) {
17             System.out.println("notfound");
18         }
19         System.out.println();
20         //Test2
21         Test t = new Test();
22         System.out.println();
23         //Test3
24         Class.forName("Test");
25     }
26 }

 

Java中的Class.forName,new 以及 newInstance

原文:https://www.cnblogs.com/owczhlol/p/12929892.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!