프로그래밍 언어/JAVA

Java에서 객체를 복사하는 방법

Rateye 2021. 7. 13. 10:41
728x90
반응형

 

질문 : Java에서 객체를 어떻게 복사합니까?

아래 코드를 고려하십시오.

DummyBean dum = new DummyBean();
dum.setDummy("foo");
System.out.println(dum.getDummy()); // prints 'foo'

DummyBean dumtwo = dum;
System.out.println(dumtwo.getDummy()); // prints 'foo'

dum.setDummy("bar");
System.out.println(dumtwo.getDummy()); // prints 'bar' but it should print 'foo'

dum 을 dumtwo에 복사하고 dumtwo 영향을주지 않고 dum 을 변경 dumtwo . 그러나 위의 코드는 그렇게하지 않습니다. dum 에서 무언가를 변경하면 dumtwo 에서도 동일한 변화가 발생합니다.

dumtwo = dum 이라고 말하면 Java는 참조 만 복사합니다. dum 의 새 복사본을 만들고 dumtwo 할당하는 방법이 있습니까?

답변

복사 생성자를 만듭니다.

class DummyBean {
  private String dummy;
  
  public DummyBean(DummyBean another) {
      this.dummy = another.dummy; // you can access  
  }
}

모든 개체에는 개체를 복사하는 데 사용할 수있는 복제 방법도 있지만 사용하지 마십시오. 클래스를 만들고 부적절한 복제 방법을 수행하는 것은 너무 쉽습니다. 그렇게하려고한다면, 적어도 Joshua Bloch가 Effective Java 에서 그것에 대해 말한 것을 읽으십시오.

출처 : https://stackoverflow.com/questions/869033/how-do-i-copy-an-object-in-java
728x90
반응형