新建对象:反射会调用构造函数,clone不会调用构造函数

原创 2012年03月21日 11:12:25

class Ins implements java.lang.Cloneable { 

    public Ins() {
        System.out.println("Construct called");

    }  

    @Override
    public Ins clone() throws CloneNotSupportedException {
        return (Ins) super.clone();
    }

}


public class ConstructTest {

 @Test
    public void test() throws InstantiationException, IllegalAccessException, CloneNotSupportedException {
        System.out.println("\n---new Ins() begin---");
        Ins ins1 = new Ins(); 
        System.out.println("---new Ins() end---");
        System.out.println("\n---Ins.class.newInstance() begin---");
        Ins ins2 = Ins.class.newInstance(); 
        System.out.println("---Ins.class.newInstance() end---");
        System.out.println("\n---ins1.clone() begin---");
        Ins ins3 = ins1.clone(); 
        System.out.println("---ins1.clone() end---");
    }

}


输出:

---new Ins() begin---
Construct called
---new Ins() end---

---Ins.class.newInstance() begin---
Construct called
---Ins.class.newInstance() end---

---ins1.clone() begin---
---ins1.clone() end---

生成对象-new、clone、序列化、反射

在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java学习,请登陆疯狂java培训官网。   生成对象的四种方式   (1...
  • u010619705
  • u010619705
  • 2013年07月06日 14:08
  • 628

利用反射进行深层克隆

我们大家都知道,对一个对应进行复制有二种比较好的方式,一种就是序列化,另一种就是克隆。使用序列化进行复制很方便,因为此种方式会自动进行深层复制,只需要我们将要序列化的对象所对应的类实现序列化标示性接口...
  • zheng963
  • zheng963
  • 2017年03月17日 15:57
  • 625

利用Java反射机制,调用一个类的构造函数和一般函数

【前言】看了侯捷大师的文档,果然很有收获,嘿嘿(MT总是这样笑。。。。) package test; import java.lang.reflect.Constructor; import ...
  • j00152685
  • j00152685
  • 2010年09月17日 22:58
  • 5706

C#使用反射访问私有构造函数

背景:今天需要用到单例模式,之前也有用过,一直是在使用的时候按通用的方式使用,即每一个实现单例模式的类都有一个GetInstance()的公共静态方法。仔细观察就会发现这其中有重复的代码,那能不能使这...
  • chengx919
  • chengx919
  • 2010年09月08日 20:48
  • 4291

C#的反射中使用带参的构造函数进行构建对象

随便写点代码,发现了这个问题。。。 因为一开始使用的Assembly.Load.CreateInstance是无法加参数的。。。 using System; using System.Collec...
  • u013529927
  • u013529927
  • 2014年03月10日 22:48
  • 1853

反射类的构造函数

Person.java package com.feng.reflect; import java.util.List; public class Person { public String...
  • howlaa
  • howlaa
  • 2013年02月23日 22:25
  • 3497

如何使用Java的反射机制以及调用构造方法?

关于如何使用Java的反射机制,兆隆IT云学院的java高级实用技术的课本中是这样的描述的:1、获取想要操作类的java.lang.Class对象。每个类被加载后,系统就会为该类生成一个对应的Clas...
  • u011277123
  • u011277123
  • 2016年08月29日 09:11
  • 1684

C++中如果声明一个对象指针时,会不会调用构造函数?

C++中如果声明一个对象指针时,会不会调用构造函数?
  • q357010621
  • q357010621
  • 2017年03月29日 23:33
  • 592

如何理解java中的依赖注入 通过构造函数和反射机制来实现的

要了解Java中的依赖注入,要了解java中的两个概念。这里是通过setXXX来实现依赖注入的。首先要了解java中基类与子类之间的构造函数的关系,再着就是了解java中反映的机制。   看一个基...
  • Flower195
  • Flower195
  • 2013年07月08日 23:41
  • 1218

通过反射去获取有参构造方法并使用

通过反射去获取有参构造方法并使用
  • wangyanming123
  • wangyanming123
  • 2016年05月09日 18:53
  • 1796
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:新建对象:反射会调用构造函数,clone不会调用构造函数
举报原因:
原因补充:

(最多只允许输入30个字)