자바에서 객체를 복사하는법


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'

위의 코드에서 dumdumtwo에 복사하잖아요. 그리고 dum의 값을 바꿀때 dumtwo에 영향을 주지 않았으면 좋겠어요. 근데 위에 코드에서는 제가 dum을 바꾸면 dumtwo도 똑같이 바뀌잖아요.

제가 원하는건 값만 복사하는건데 dumtwo = dum는 dumtwo가 dum과 똑같은 객체를 가리키게 하는것 같아요.. dumtwo = dum 문장에서 문자열 값만 복사하게 할 수 없을까요?

  • 2016년 01월 07일에 작성됨

조회수 664


1 답변


좋아요
0
싫어요
채택취소하기
class DummyBean {
  private String dummy;

  public DummyBean(DummyBean another) {
    this.dummy = another.dummy; // 문자열 복사 
  }
}

이렇게 복사 생성자를 만들어주세요. 다른 방법으로는 clone메소드가 있는데 이게 더 쉬울거에요. 클론을 쓰고 싶으면 참고자료 이거 한번 공부해보세요.

  • 2016년 01월 07일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close