Преобразование картык списку <MyModeledClass> - PullRequest
0 голосов
/ 31 января 2019

Я вызываю функцию, которая возвращает карту.Я хотел бы преобразовать объект в модель.

public List<Item> getProducts(String itemNumber) throws Exception {
    MapSqlParameterSource parameters = new MapSqlParameterSource();

    params.addValue("flagA", "D");
    params.addValue("descA", itemNumber);

    Map<String, Object> results = execute(programName, parameters );

    List<Item> list = (List<Item>) results.get("#result");
    return list;
}

Вот пример того, что он возвращает:

[
    {
        "ITEM#": "123456",
        "ITEM_NAME": "ITEM NAME"
    }
]

Вот моя модель (с использованием ломбок):

@Data
@Wither
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Item{
    String itemNumber;

    String itemName;
}

Это приводит к ошибке;

List<Item> list = (List<Item>) results.get("#result");
System.out.println(list.get(0).getItemNumber());

1 Ответ

0 голосов
/ 31 января 2019

Измените строку:

List<Item> list = (List<Item>) results.get("#result");

на

List<Item> list = new ArrayList<Item>(results.values());

Новый список создается с использованием значений карты, ключи отбрасываются.

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