java类实例化的4种方式

java类实例化的4种方式

使用new直接创建

使用java反射创建

调用clone()方法,进行实例的拷贝

通过反序列化类获取

使用new直接创建

Test t = new Test();

使用java反射创建

1、获取Class对象的三种方式

公有属性class

Class clazz = Test.class;

方法getClass()

Test t = new Test();

Class clazz = t.getClass();

Class.forName()

Class clazz = Class.forName("com.xx.Test");

2、通过反射实例化对象的两种方式

Class.newInstance()

Class clazz = Class.forName("com.xx.Test");

Test t = (Test) clazz.newInstance();

Constructor.newInstance()

Constructor[] constructor = Test.class.getConstructors();

Test t = (Test) constructor[0].newInstance(null);

备注说明:枚举类型不支持反射来实现,因此java推荐使用enum实现单例模式

if ((clazz.getModifiers() & Modifier.ENUM) != 0)

throw new IllegalArgumentException("Cannot reflectively create enum objects");

调用clone()方法,进行实例的拷贝

Test t = new Test();

Test t2 = (Test) t.clone();

通过反序列化类获取

通过ObjectInputStream的readObject()的方法

相关推荐

我为什么要当老师?这些答案看一遍感动一遍!
周岁照的意义是什么 周岁照是提前拍还是周岁当天拍
365网站打不开了

周岁照的意义是什么 周岁照是提前拍还是周岁当天拍

📅 07-12 👁️ 2401
华为荣耀6充多久电
365batapp

华为荣耀6充多久电

📅 09-05 👁️ 928
DNF剑圣110级最佳装备搭配推荐
365bet资讯

DNF剑圣110级最佳装备搭配推荐

📅 08-14 👁️ 1004
卡塔尔世界杯|“00后”小将闪光 英格兰6:2大胜伊朗
365网站打不开了

卡塔尔世界杯|“00后”小将闪光 英格兰6:2大胜伊朗

📅 07-20 👁️ 4415
Linux端的ssh如何升级?
365网站打不开了

Linux端的ssh如何升级?

📅 07-21 👁️ 4191