一、通过构造函数
- 通过new关键字调用类的构造函数。
- 构造函数结合set方法,通过构造函数设置必填项,通过 set() 方法设置可选配置项,但是依旧存在一些问题。 (建造者模式中有举例)
- IOC容器的依赖注入。
二、I/O 流的反序列化
三、调用对象的clone()方法
四、通过反射,动态创建对象
用 Class.forName方法获取类,在调用类的newinstance()方法
Class<?> cls = null;
User u = null;
try{
cls = Class.forName("com.dao.User");
u = (User) cls.newInstance();
} catch(ClassNotFoundException e1){
e1.printStackTrace();
}