使用Class类的两点经验

使用Class类的两点经验
Class类中,我们使用最多的就是forName()方法和newInstance()方法。

1、使用forName()方法时,即使引用同一个包中的类,也要写完整的包名,如:
         try  {
            Printable p1 
=  (Printable) Class.forName(
                    
" com.coderdream.chapter21.proxy.a1.Printer " ).newInstance();
        } 
catch  (Exception e) {
            System.out.println(
" Nooo " );
        }

接口Printable和类Printer在同一个包中,但也要写完整的包名,否则抛出异常,提示找不到Printer类。

2、使用newInstance()方法时,如果不存在无参的构造函数,也会报找不到Printer类。
这一点很容易忽略,而且很难找到错误,我们经常会写一些带参数的构造函数。而此处的newInstance()方法是会调用默认构造函数,如果不存在会抛出找不到类的异常。

你可能感兴趣的:(使用Class类的两点经验)