Calvin's Tech Space

成于坚忍,毁于浮躁

   :: 首页 :: 联系 :: 聚合  :: 管理

我们都知道java里生成对象有如下两种方式:

1Object obj = new ClassName(); 

直接new一个对象

2Class clazz = Class.forName(ClassName);

    Object obj = clazz.newInstance(); 

通过class loader动态装载一个类,然后获取这个类的实例

    同样是生成对象,1在编译期间检查classpath, 如果没有类定义,编译没法通过。而2在编译期间是不会检查的,不过需要抛出或者自己catch ClassNotFoundException。 运行期间,如果1编译时依赖的类不在classpath中(导致classloader装载失败),此时抛出的异常就是 NoClassDefFoundError。而如果2在运行期间需要装载的类不在classpath中,抛出的则是 ClassNotFoundException

 

posted on 2009-09-16 21:23 calvin 阅读(159) 评论(0)  编辑  收藏 所属分类: Java

只有注册用户登录后才能发表评论。


网站导航: