java中生成对象的方式有多种,如下所示:
1、使用new操作符,这是最普遍的一种
如:String s=new String("abc");
2、使用反射动态生成
利用Class,ClassLoader,Constructor中的方法可以动态的生成类实例
如:Objecto=Class.forName("java.lang.String").newInstance();
Objecto=String.class.getClassLoader.loadClass("java.lang.String").newInstance();
以上的方式需要目标类拥有公有无参构造函数
以下使用Constructor进行动态生成
class User{
public User(String user,Integerid){}
}
Constructor c=User.class.getConstructor(newClass[]{String.class,Integer.class});
User user=(User)c.newInstance(newObject[]{"zhang san",123});
3、使用克隆生成对象
例如使用一个实现了Cloneable接口的对象,调用其clone()方法获得该对象的一份拷贝
4、利用反序列化从流中生成对象
利用ObjectInptuStream的readObject()方法生成对象