The serializable class does not declare a static final serialVersionUID field of type long
serializable 클래스가 long 타입의 정적 final serialVersionUID 필드를 선언하지 않습니다.
ArrayLIst 생성 방법엔 다음 네 가지가 있다.
ArrayList<String> al = new ArrayList<String>(); // 생성, 선언 only
ArrayList<String> al = new ArrayList<String>() {
{
add("a");
add("b");
}
}; //익명 객체 생성을 통해 생성, 선언과 동시에 원소 삽입
ArrayList<String> al = new ArrayList<String>(Arrays.asList("a", "b"));
//컬렉션을 parameter로 하는 생성자 이용
//java.util.Arrays 클래스의 매소드_ Arrays의 private 정적 클래스인 ArrayList를 리턴
ArrayList<String> al = new ArrayList<String>(List.of("a", "b"));
//컬렉션을 parameter로 하는 생성자 이용
..List 인터페이스의 메소드_
Scanner을 통해 요소를 입력 받아 ArrayList에 저장하는 코드를 작성하면서, 익명 객체를 생성하는 위 두 번째 방법을 사용해보았다.
다음과 같이 생성자 키워드에서 Warning
이 뜨게 된다.
serialVersionUID
란?객체를 파일에 작성/전송하기 위해선 객체 클래스
에 Serializable Interface
를 implement
한 후(직렬화를 위한 과정) 직렬화
과정을 거친다.
serialVersionUID
란 직렬화에 사용되는 고유 아이디로, 미 선언 시 JVM이 자동 생성한다.
Java에서 이를 명시적으로 선언할 것을 적극 권장하기 때문이다.
일단, Warning이므로 무시해도 실행 시 문제가 발생하진 않는다. 허나 해결을 위한다면:
@SuppressWarnings("serial")
어노테이션 처리 (근본적 해결책은 아님)코딩창고 님의 티스토리 「serialVersionUID 이란? Warning 해결하기」
seungkyua 님의 데보션 블로그 「Python, Javascript, Go, Java 언어의 Data Structure 활용 방법 비교」
minjara 님의 네이버 블로그 「Arrays.asList()」
Serialization에 대한 설명(행복만땅 개발자님의 티스토리_「serialVersionUID 자동생성하기」)
❓ List(java.util의 인터페이스), Arrays(java.util의 클래스), ArrayList(List를 상속받는 java.util의 클래스), Array의 차이
❓Arrays.asList
와List.of
메소드의 차이
❓Arrays.asList
의 return 원리