public static List<Long> abc = new ArrayList<Long>(){{ //Asks for SerialVersionUID
abc.add(5L);
abc.add(7L);
}};
public static List<Long> abc = new ArrayList<Long>();//Does not need SerialVersionUID
static{
abc.add(5L);
abc.add(7L);
}
2
A
답변
5
두 번째 예에서는 이미 serialVersionUID
(즉 ArrayList
)으로 정의 된 클래스를 인스턴스화합니다.
첫 번째 예제에서는 ArrayList
의 익명 하위 클래스를 정의하고 있고 하위 클래스에는 자체 serialVersionUID
이 정의되어 있어야합니다. 이중 중괄호 초기화가 실제로 익명 클래스를 정의한다는 것이 항상 명확하지는 않습니다.
3
첫 번째 예에서는 "이중 중괄호 초기화"를 통해 ArrayList의 익명 하위 클래스를 만들고 있기 때문에 ArrayList는 Serializable 인터페이스를 구현합니다. SerialVersionUID는 직렬화 복원에 사용되며 엄격하게 필요하지는 않지만 직렬화를 제공하는 것이 좋습니다. IDE가이 경고를보고하도록 구성되었을 수 있습니다.
두 번째 예제에서는 ArrayList의 익명 하위 클래스를 만들지 않고 하나만 인스턴스화하고 해당 메서드를 호출합니다.
관련 문제
- 1. json.length를 묻는 질문에 정의되지 않은 이유는 무엇입니까?
- 2. 여기서 serialVersionUID를 사용하는 목적은 무엇입니까?
- 3. Java에서 이중 선택 잠금이 끊긴 이유는 무엇입니까?
- 4. HttpWebResponse에서 "이중 응답"을받는 이유는 무엇입니까?
- 5. @SerialVersionUID를 익명 클래스에 추가하는 방법은 무엇입니까?
- 6. VB.NET 개체 초기화가 작동하지 않습니까?
- 7. GitHub HTTPS 체계가 항상 내 암호를 묻는 이유는 무엇입니까?
- 8. 애플릿이 액세스권을 묻는 대신 AccessControlException을 던지지 않는 이유는 무엇입니까?
- 9. Capistrano가 ssh 키의 암호를 두 번 묻는 이유는 무엇입니까?
- 10. IndexTank : InstantSearch에서 사용자 이름과 암호를 묻는 이유는 무엇입니까?
- 11. Serializable 클래스의 조상에 serialVersionUID를 넣어야합니까?
- 12. CakePHP 베이킹의 이중 밑줄은 무엇입니까?
- 13. 스레드 관리 초기화가 완료되었는지 확인하는 방법은 무엇입니까?
- 14. ArcEngine 초기화가 빨라지니까?
- 15. C# 구조체 초기화가 제대로
- 16. 이중 느낌표는 무엇입니까 !! 연산자 뜻?
- 17. realloc()에 이중 자유 오류가 발생하는 이유는 무엇입니까?
- 18. Java에서 이중 리터럴의 임의 정밀도가 허용되는 이유는 무엇입니까?
- 19. 이중 버퍼 GLUT 창에서 glTranslate가 아무 것도하지 않는 이유는 무엇입니까?
- 20. 이중 디스패치가 C++에서 작동하지 않는 이유는 무엇입니까?
- 21. GCC의 __attribute __ ((...)) 구문이 이중 괄호를 사용하는 이유는 무엇입니까?
- 22. Quartz가 내 drawInContext()를 이중 버퍼링하지 않는 이유는 무엇입니까?
- 23. "이중 수명"모듈이란 무엇입니까?
- 24. serialVersionUID를 이미 사용중인 직렬화 가능 클래스에 추가합니다.
- 25. GWT RemoteServiceServlet - 왜 Serializable이고 어떻게 serialVersionUID를 처리합니까?
- 26. 정규식의 이중 플러스
- 27. 그들이 사용하는 브라우저를 묻는 일반적인 방법은 무엇입니까?
- 28. Spamhaus의 SBL에 도메인 이름을 묻는 방법은 무엇입니까?
- 29. asp.net에서 파일 다운로드를 자동으로 묻는 방법은 무엇입니까?
- 30. 초기화가 호출되고 있는데 이유를 모르겠습니다.
귀하의 질문에 답변 해 드리며 동일합니다. http://stackoverflow.com/questions/924285/efficiency-of-java-double-brace-initialization – valli
ack! 두 예제 모두 public static * modifiable * 목록을 작성하고 있습니다. 매우 나쁜 것입니다. –
@Kevin 두 가지 예에서 공공 정적 수정 가능 목록을 만드는 것은 무엇을 의미합니까? 대안은 무엇입니까? – DKSRathore