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):

}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 谈谈 Java 中自定义注解及使用场景

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:快给我饭吃 www.jianshu.com/p/a7bedc771204 Java自定义注解一般使用场景为:自…

  • Eclipse 导入activiti包里的 activiti-webapp-explorer2 项目

    Eclipse 导入activiti包里的 activiti-webapp-explorer2 项目

  • 浅谈安防监控中视频图像处理技术

    浅谈安防监控中视频图像处理技术2019-08-1521:39:20随着计算机软件、硬件技术的日新月异的发展和普及,人类已经进入一个高速发展的信息化时代,人类大概有80%的信息来自图像,科学研究、技术应用中图像处理技术越来越成为不可缺少的手段。安防行业已经进入一个崭新的时代,高清、智能与大数据和云技术的广泛结合应用,成为时代新的话题。随着而来的是,视频图像处理技术也逐渐成熟起来,只有这样才能切合行业技术发展,为此,对于视频…

  • eclipse怎么导入一个Java项目(莫要错过,最详细教程!)

    eclipse怎么导入一个Java项目(莫要错过,最详细教程!)对于eclipse软件,常规的打开文件方法是无法打开一个项目的,那么怎样导入一个java项目呢?方法如下第一步在电脑打开eclipse软件,点击file->Import,如下图所示:第二步选择General->ExistingProjectsintoworkspace,点击next,如下图所示:第三步点击选择要导入的项目路径,选好,点击finish,如下图所示:到此为止,已经导入成功了如果对你产生了帮助,那么请给博主一个小小的赞哦。…

  • java buttongroup方框_Swing之ButtonGroup用法实例 | 学步园

    java buttongroup方框_Swing之ButtonGroup用法实例 | 学步园1就是起作用范围的,不是组件,不能被容器添加,目的让其中一个起作用,例如radiobuttonpackagecom.szsm.swing.framepanel;importjava.awt.FlowLayout;importjavax.swing.ButtonGroup;importjavax.swing.JRadioButton;importcom.szsm.swing.parent…

    2022年10月25日
  • Linux开发在中国[通俗易懂]

    Linux开发在中国[通俗易懂][2004-5-15]  中关村最堵车的白颐路旁的一座公寓里,赵宇一手拿着遥控器,一手指着电视屏幕给客户演示着流媒体的点播效果。作为腾博讯公司的总经理,赵宇已经在Linux圈里面摸爬滚打了五年多。他曾策划发行过Linux光盘,创建过Linux社区,做过Linux杂志主编。现在,他又基于Linux流媒体服务器技术创建了自己的公司。  但…

发表回复

您的电子邮箱地址不会被公开。

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