先说声Sorry,这两天工作有点忙,早上把昨天的补下。
项目中,Bean类实现Cloneable接口。这是用来做什么的,What?,克隆?,于是上网查了下资料。
Cloneable是一个标记接口,本身里面是没有任何内容的。
Package java.lang;
public interface Cloneable {
}
java中clone的定义:
1.x.clone() != x 返回true 说明clone之后不是同一个对象
2.x.clone().getClass() == x.getClass() 返回true 说明clone之后是同一个Class
3.x.equals.(x.clone()) 返回false obj 中equals内部是通过 ‘==’ 来比较对象的
clone方法是在Object中定义的,类型是Protected,只有实现了Cloneable接口,才可以在该类的实例上调用clone方法。
否则抛CloneNotSupportException.
Object中默认实现的是浅拷贝,如果要实现深拷贝的话,需要对类中可变域生成新的实例。例子如下:
pubilc class Unsupported{
public Object clone(){
Object obj;
try {
obj=super.clone();
}
catch (CloneNotSupportedException ex) {
ex.printStackTrace(); //Exception was thrown
}
return obj;//返回的是null
}
}
加上 implements Cloneable 就可以了.
今天早上查东西的时候,看到了一个人物介绍, 楼天城, “楼教主” ,想必大家早就熟悉了吧,可以说是中国编程界的第一人,小弟不才,入行不深,今天方深入了解了 下,看完之后,膜拜二字油然而生,圈内称之为 ‘天才’ 并不为过。
我只想说,大神,别跑,肩膀借我踩下嘛!
最后附上每日一图,大家一起加油! KEEP GOING,DON'T SETTLE!