2012-06-06 4 views
1

GSON이 java.util.List 유형의 클래스에서 필드를 직렬화 해제 할 때 사용할 목록 구현으로 ArrayList를 선호합니다. LinkedList를 사용하도록 기본값을 설정하는 방법이 있습니까 (실제로 필드의 유형으로 정의하는 것 외에는)?GSON은 LinkedList를 java.util.List 인터페이스의 기본 비 직렬화로 사용할 수 있습니까?

+3

그냥 호기심, 왜? – jtahlborn

+0

이 특정 예에서는 매우 중요하지 않지만 인터페이스로 선언 된 필드가있는 경우 GSON을 사용하면 기본 구현간에 전환 할 수 있습니다. 이 경우 대부분의 목록을 LinkedLists로 설정하여 JVM 메모리 할당을 더 쉽게 만듭니다. 그러나 객체를 직렬화 할 때 ArrayList임을 알게되었습니다. 명시 적으로 선언 할 수는 있지만 GSON이이 기능을 지원하면 대부분 궁금했습니다. – Ilya

답변

1

짧은 대답은 '아니오'입니다.
하지만 여전히이 건설 사용할 수 있습니다

LinkedList<Foo> list = new LinkedList<>(
    (ArrayList<Foo>) new Gson().fromJson(
     gsonString, new TypeToken<List<Foo>>(){}.getType() 
    ) 
); 
관련 문제