1.
OmAbstractInput input = null;// OmAbstractInput是一个自定义类
input = (OmAbstractInput)Class.forName(argInputClassName).newInstance();
// argInputClassName也是一个自定义类
input.setUserInformation(argUserInformation);//setUserInformatio为OmAbstractInput类的方法
2.
OmAbstractInput input=new OmAbstractInput();
input.setUserInformation(argUserInformation);
1和2的区别在哪里?什么时候用1,什么时候用2呢,最好能举例说明,希望高手能帮忙解答。

解决方案 »

  1.   

    newInstance创建此 Class 对象所表示的类的一个新实例。如同用一个带有一个空参数列表的 new 表达式实例化该类。如果该类尚未初始化,则初始化之。 
    此方法传播 nullary 构造方法所抛出的任何异常,包括已检查的异常。使用此方法可以有效地绕过编译时的异常检查,而在其他情况下编译器都会执行该检查。 Constructor.newInstance 方法将该构造方法所抛出的任何异常包装在一个(已检查的)InvocationTargetException 中,从而避免了这一问题。
      

  2.   

    参考文章:
    关键字new和newInstance方法区别
    http://www.javaresearch.org/article/showarticle.jsp?column=1&thread=43864