Cloneable 인터페이스 정확하게 증가
코드 를 보고 override 는 clone 함 수 를 얻 었 습 니까? 아니면 null 을 얻 었 습 니까?
stackoverflow 를 계속 검색 해 보 니 Cloneable 인터페이스 설명 이 추가 되 지 않 았 습 니 다.
성명 을 늘 린 후 문 제 를 해결 하 다.
http://stackoverflow.com/questions/1052340/what-is-wrong-with-this-clone
The standard pattern for making a class cloneable is:
Cloneable
clone()
method and make it public clone()
call super.clone()
and then copy any mutable object's state You should not create a new object using
new
. The proper way is to call super.clone()
for a new instance. Object
's clone()
is special and will create a new copy of the object and copy its primitive fields and references. 새 키 워드 를 사용 하여 새 대상 을 만 들 필요 가 없습니다.적절 한 방법 은 슈퍼 클론 을 호출 하여 새로운 대상 을 만 드 는 것 이다.Object 의 clone () 은 특별 합 니 다. 새로운 대상 을 만 들 고 기본 형식 과 인용 을 복사 합 니 다.(여 기 는 깊 은 복사 와 얕 은 복사 와 관련 되 어 있 으 니 스스로 glgoo. com)
For example:
public class Person implements Cloneable { protected String name; // Note that overridden clone is public public Object clone() { Person clone = (Person)super.clone(); // No need to copy name as the reference will be // copied by Object's clone and String is immutable return clone; } } public class Employee extends Person { protected int id; protected java.awt.Point location; public Object clone() { Employee clone = (Employee )super.clone(); // No need to copy id as Object's clone has already copied it // Need to clone location as Point is mutable and could change clone.location = location.clone(); return clone; } }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.