JAVA克隆对象报错:The method clone() from the type Object is not visible

将一个对象复制一份,称为对象的克隆技术。
在Object类汇总存在一个clone()方法:
protected Onject clone() throws CloneNotSupportedException
如果某各类的对象想被克隆,则对象所在的类必须实现Cloneable接口。
此接口没有定义任何方法,是一个标记接口
接下来我们看看具体代码实现:
以下是正确的代码:

//要实现Cloneable这个接口,不用传参
public class Dog implements Cloneable{
	private String name;
	private int age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}

	public Dog() {}

	public Dog(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	@Override
	public String toString() {
		return "Dog [name=" + name + ", age=" + age + "]";
	}

	//把这个方法重写一下就行,什么都不写
	@Override
	protected Object clone() throws CloneNotSupportedException {

		return super.clone();
	}
————————————————
版权声明:本文为CSDN博主「陈jiaoshou」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43660039/article/details/84992348

  

结果展示:

我是原生dog:Dog [name=tom, age=3]
我是克隆dog:Dog [name=tom, age=3]
1
2
需要注意的是:clone重写的方法的修饰词是protected,受保护的意思,此时克隆的
主方法应该和重写clone的方法在一个包中,否则会报如下错误:

The method clone() from the type Object is not visible
————————————————
版权声明:本文为CSDN博主「陈jiaoshou」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43660039/article/details/84992348

原文地址:https://www.cnblogs.com/max-hou/p/12003242.html

时间: 2024-11-10 13:52:59

JAVA克隆对象报错:The method clone() from the type Object is not visible的相关文章

java连接sqlserver2008报错 java.sql.SQLException: 对象名 '表名' 无效.

注意:c3p0的数据库配置方式为: <named-config name="sqlsvr"> <property name="driverClass">net.sourceforge.jtds.jdbc.Driver</property> <property name="jdbcUrl">jdbc:jtds:sqlserver://localhost:1433/WaterNet_DaFeng<

java克隆对象clone()的使用方法和作用

转自:997.html">http://www.okrs.cn/blog/news/?997.html 内容摘要 若需改动一个对象,同一时候不想改变调用者的对象.就要制作该对象的一个本地副本.这也是本地副本最常见的一种用途.若决定制作一个本地副本.仅仅需简单地使用clone()方法就可以.Clone是"克隆"的意思,即制作全然一模一样的副本.这种方法在基础类Object中定义成"protected"(受保护)模式. 但在希望克隆的不论什么衍生类中,必

Linux运行Java出现“Exception in thread &quot;main&quot; java.lang.OutOfMemoryError: Java heap space”报错

在运行如下程序时出现“Exception in thread "main" java.lang.OutOfMemoryError: Java heap space”报错: java -jar picard.jar SortVcf I=hg19.sites.vcf O=hg19.sites.sorted.vcf SEQUENCE_DICTIONARY=hg19.dict 出现这种报错说明内存不足.因此我们可以加上“-Xmx”参数 java -Xmx60g -jar picard.jar

rails中render 和 redirect_to的区别, each只能用在数组中,如果只有一个或者零个项,用each方法会报错undefined method `each&#39; for #...

在render中,即使有:action,那么也仅仅是取对应的view中的模板(html.erb)而已,所以这里即使浏览器中的url是/orders/xcreate,但是显示的界面是/app/views/orders/xshow的代码 def xcreate flash.now[:notice] = "bb" @order = Order.new(params[:order]) if @order.save flash[:notice] = "yes" render(

spring cloud gateway网关启动报错:No qualifying bean of type &#39;org.springframework.web.reactive.DispatcherHandler&#39;

网关配置好后启动报错如下: org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is java.lang.RuntimeException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletEndpoint

python webdriver 报错WebDriverException: Message: can&#39;t access dead object的原因(pycharm中)

PyCharm中运行firefox webdriver访问邮箱添加通讯录的时候报错-WebDriverException: Message: can't access dead object 调了半天,发现是因为在登录操作后没有从frame中切换出来导致的,因为在登录的时候需要先切换到frame中,登录之后要切换出来才能继续其他操作. 下面是我运行的代码,driver.switch_to.default_content()这一行被我注释掉了,结果就报这个错 代码:driver=webdriver

VC中编译报错:error C2011: &#39;fd_set&#39; : &#39;struct&#39; type redefinition

这是头文件包含顺序的问题,原因与解决办法见下面代码的注释. /* 包含下面这两个头文件时,必须把winsock2.h放在前面 否则编译报错,N多的重定义错误:例如 error C2011: 'fd_set' : 'struct' type redefinition */ #include <WinSock2.h> #include <Windows.h> int main(int argc, _TCHAR* argv[]) { Sleep(1); return 0; } 其实可以不

【原创】mybatis配置文件报错:The content of element type &quot;configuration&quot; must match &quot;(properties&gt;settings&gt;typeAliases&gt;typeHa...

最近使用mybatis,在mybatis的xml配置文件中总是会提示错误 The content of element type "configuration" must match "(properties>settings>typeAliases>typeHandlers>objectFactory>objectWrapperFactory>plugins>environments>mappers?)". 后来发现

flutter 编译报错 ../extended_network_image_provider.dart:63:41: Error: Type &#39;DecoderCallback&#39; not found

flutter 编译的时候报错 Compiler message:../../../.pub-cache/hosted/pub.dartlang.org/extended_image_library-0.1.9/lib/src/extended_network_image_provider.dart:63:41: Error: Type 'DecoderCallback' not found.      ExtendedNetworkImageProvider key, DecoderCallb