Как глобально зарегистрировать адаптеры типов на Gson? - PullRequest
4 голосов
/ 13 декабря 2011

Я использую gson в нескольких местах в моем коде, и кажется, что каждый раз мне нужно регистрировать адаптеры типов, которые я использую, например:

 GsonBuilder gsonBuilder = new GsonBuilder();
 gsonBuilder.registerTypeAdapter(TypeA.class, new TypeAAdapter());
 gsonBuilder.registerTypeAdapter(TypeB.class, new TypeBAdapter());
 Gson gson = gsonBuilder.create();

Теперь я могу обернуть этот код в служебную функцию или создать синглтон gsonBuilder (это потокобезопасно?), Но мне кажется странным, что этот общий шаблон использования не упоминается в документации. .

Есть ли какой-нибудь предпочтительный метод для установки и забывания адаптеров типов в gson, чтобы мне пришлось беспокоиться о них только в одном месте в моем коде?

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

Gson кажется потокобезопасным классом. Функциональный тест, обеспечивающий безопасность потоков, можно найти в исходном коде .

Таким образом, вы можете внедрить экземпляр Gson в ваши классы как зависимость, если вы используете инфраструктуру внедрения зависимостей.

0 голосов
/ 08 мая 2013

зарегистрируйте TypeAdapterFactory в grails-app/conf/spring/resources.groovy:

beans {
        localDateAdapterFactory(LocalDateAdapterFactory)
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...