java clone()_java throwable

java clone()_java throwable克隆是一种基本的编程模式。事实上,Java在很多方面可能实现得很差,但这丝毫没有减少克隆的必要性。而且,很容易实现克隆,无论你希望它如何工作,浅层的,深层的,混合的,无论什么。如果愿意的话,甚至可以为函数使用clone名称,而不实现Cloneable。假设我有类A、B和C,其中B和C是从A派生的。如果我有一个A类型的对象列表,如下所示:ArrayListlist1;ArrayListlist2…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

克隆是一种基本的编程模式。事实上,Java在很多方面可能实现得很差,但这丝毫没有减少克隆的必要性。而且,很容易实现克隆,无论你希望它如何工作,浅层的,深层的,混合的,无论什么。如果愿意的话,甚至可以为函数使用clone名称,而不实现Cloneable。

假设我有类A、B和C,其中B和C是从A派生的。如果我有一个A类型的对象列表,如下所示:

ArrayList list1;

ArrayList list2 = new ArrayList();

for(A a : list1) {

list2.add(new A(a));

}

如果对象实际上是B或C类型的,则不会得到正确的副本。如果A是抽象的呢?现在,有人提出:

ArrayList list2 = new ArrayList();

for(A a : list1) {

if(a instanceof A) {

list2.add(new A(a));

} else if(a instanceof B) {

list2.add(new B(a));

} else if(a instanceof C) {

list2.add(new C(a));

}

}

你想做的是:

ArrayList list2 = new ArrayList();

for(A a : list1) {

list2.add(a.clone());

}

很多人都指出了克隆的基本Java实现存在问题的原因。但是,这样很容易克服:

public A clone() {

return new A(this);

}

B类:

@Override

public B clone() {

return new B(this);

}

C类:

@Override

public C clone() {

return new C(this):

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183657.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月10日 上午8:46
下一篇 2022年10月10日 上午8:46


相关推荐

  • linux配置ip端口号

    linux配置ip端口号1./etc/httpd/conf.d/test.conf8000> ServerNametest.com//也可以是ip地址 DocumentRoot/var/www/test DirectoryIndexindex.htmlindex.php AddDefaultCharsetutf-8 DefaultLanguageutf-8 LanguagePriority

    2022年5月22日
    166
  • VC++ 安装程序制作

    VC++ 安装程序制作VC 安装程序制作 2009 10 2510 40 当用 VC 完成应用程序的编制后 如果不为它制作一个安装程序 似乎感到缺少一点什么 你也许急于到市面找制作安装程序的工具 如 CreateInstal iSetup 等 事实上 VC 6 0 的企业版已为我们提供了一套制作安装程序的工具 InstallShiel

    2026年3月17日
    1
  • mac 安装brew

    mac 安装brew

    2022年2月19日
    61
  • SECS/GEM介绍

    SECS/GEM介绍SECS GEM 确定了半导体 电子和光伏行业常用的通信接口类型 该接口已由非营利性行业协会 SEMI 标准化 此篇文章会传达对 SECS GEM 的基本功能和范围的理解 而不提供基本协议和数据格式的详细信息 SECS 是半导体设备通信标准的首字母缩略词 GEM 是指 SEMIE30 标准 它使用 SEMIE5 标准中定义的消息类型的子集来描述设备行为和通信的通用模型 SECS GEM 接口的部署通常会使用 SEMI 标准 E37 和 E37 1 指定的 TCP IP 网络 但标准 E4 中也可使用 RS

    2026年3月20日
    4
  • 计算机win7卡顿如何解决方法,win7电脑出现卡顿怎么办_win7电脑卡顿严重解决方法…[通俗易懂]

    计算机win7卡顿如何解决方法,win7电脑出现卡顿怎么办_win7电脑卡顿严重解决方法…[通俗易懂]现在已经是网络时代了,不管我们是在工作、生活还是学习我们大家都离不开电脑。win7系统也是一款比较经典的系统,不管怎么样我们电脑使用久了,都会出现卡顿的问题,有时候打开一个文件,程序反应非常慢。那么win7电脑出现卡顿我们要怎么办呢?接下来小编就跟大家分享一下win7电脑卡顿严重解决方法。win7电脑卡顿严重解决方法:方法一:1、首先鼠标右键点击“计算机”,选择“属性”。2、在属性页面,点击“高级…

    2025年11月2日
    4
  • python进程

    python进程

    2021年9月13日
    56

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号