Обобщенное объявление Java на основе json - PullRequest
0 голосов
/ 17 ноября 2018

Я пытаюсь определить универсальный тип Java в методе, но я не могу это сделать.Я просмотрел много постов, но не понял этого.

У меня есть JSON, который будет преобразован в java LinkedHashMap с помощью Mule Dataweave.Вот простой JSON

{
  "a": {
    "b": {
      "c": [{
          "name": "abc"
        },

        {
          "name": "xyz"
        }
      ],

      "d": "e"
    },

    "f": "g"
  }
}

Теперь я хочу использовать этот JSON, преобразованный в LinkedHashMap в методе java.Я пробовал что-то вроде

public void test(LinkedHashMap<String, LinkedHashMap<String, LinkedHashMap>> payload)

, но значение может быть рекурсивным LinkedHashMap, пока я не получу ключ и значение в виде String.Я не знаю, насколько глубоко это может зайти, поскольку основано на ответе JSON.Как я могу определить это в дженериках Java?

1 Ответ

0 голосов
/ 20 ноября 2018

Поскольку Java не поддерживает типы соединений, вы не можете смоделировать это, кроме

public void test(LinkedHashMap<String, Object> payload)

Где вы знаете, что объект - это либо карта <>, либо строка, либо список.

...