在Java中生成实例有多种方法:

1.new:

一般情况下都是通过关键字new生成实例的。

2.clone:

可以使用在Prototype模式中的clone方法来根据现有的实例复制出一个新的实例对象。(不会调用构造函数)

  1. @Override
  2. public Product createClone() {
  3. Product p = null;
  4. try {
  5. p = (Product) clone();
  6. } catch (CloneNotSupportedException e) {
  7. e.printStackTrace();
  8. }
  9. return p;
  10. }

3.newInstance:

使用java.lang.Class类中的newInstance方法可以通过Class类的实例生成出Class类所表示的类的实例(会调用无参构造函数)

  1. public static Factory getFactory(String className){
  2. Factory factory = null;
  3. try {
  4. factory = (Factory)Class.forName(className).newInstance();
  5. } catch (InstantiationException e) {
  6. e.printStackTrace();
  7. } catch (IllegalAccessException e) {
  8. e.printStackTrace();
  9. } catch (ClassNotFoundException e) {
  10. e.printStackTrace();
  11. }
  12. return factory;
  13. }
  1. someObject.getClass().newInstance();