Calendar 개체의 방어 복사본을 만드는 방법을 구현하는 가장 좋은 방법을 찾으려했습니다.Calendar의 방어 복사본
예 : 널 (null) 입력을 확인하고 사본을 만들거나 내가 매우 명백한 뭔가를 놓치고 때 스레드의 인터리빙에 대해 특히 걱정
public void setDate(Calendar date) {
// What to do....
}
?
copy = Calendar.getInstance(original.getTimeZone());
copy.setTime(original.getTime());
하지만 난 강력하게 제안 자바에서 시간과 날짜를 표현하는 JodaTime를 사용 (가능하면) 그 :
복제본의 문제점은 무엇입니까? (나는 정말로 흥미 롭습니다.) – zeller
좋은 점은, 객체 자체가 확장 가능하지 않다면 클론이 좋다는 것입니다. 불행히도 캘린더 (GregorianCalendar)는 그렇지만 개체가 일정 및 다른 장난 꾸러기 하위 클래스가 아니라면 복제본을 사용할 수 있습니다. 사실 내 내부 달력이 사실임을 확신하기 때문에 동일한 클래스의 getter에서 clone 메서드를 사용하고 있습니다. –
나는 네가 옳다는 것을 알았다. 그러나 객체가 당신을 지원하고 싶지 않은 클래스의 것이라면 복사를 금지 할 수 있습니다. 맞습니까? – zeller