Как преобразовать объект Java (бин) в пары ключ-значение (и наоборот)? - PullRequest
88 голосов
/ 11 апреля 2009

Скажем, у меня есть очень простой Java-объект, который имеет только некоторые свойства getXXX и setXXX. Этот объект используется только для обработки значений, в основном для записи или для карты с типом (и производительностью). Мне часто приходится конвертировать этот объект в пары ключ-значение (строки или безопасный тип) или преобразовывать пары ключ-значение в этот объект.

Что лучше, чем размышление или написание кода для этого преобразования вручную,

Примером может быть отправка этого объекта через jms без использования типа ObjectMessage (или преобразование входящего сообщения в правильный тип объекта).

Ответы [ 22 ]

1 голос
/ 31 мая 2012

Если вы действительно хотите производительность, вы можете пойти по пути генерации кода.

Вы можете сделать это на себе, выполнив свое собственное отражение и построив миксин AspectJ ITD.

Или вы можете использовать Spring Roo и создать Spring Roo Addon . Ваш аддон Roo сделает что-то похожее на описанное выше, но будет доступно всем, кто использует Spring Roo, и вам не нужно использовать аннотации времени выполнения.

Я сделал оба. Люди дерьмово относятся к Spring Roo, но это действительно самая полная генерация кода для Java.

0 голосов
/ 11 декабря 2018

Используя Gson,

  1. Конвертировать POJO object в Json
  2. Конвертировать Json в карту

        retMap = new Gson().fromJson(new Gson().toJson(object), 
                new TypeToken<HashMap<String, Object>>() {}.getType()
        );
    
...