首页 > 解决方案 > 获取 ArrayList 列表

问题描述

我想创建一个数据数组列表并通过休息点返回它。我试过这个:

@Service
public class CardBrandsListService {

    public ArrayList<String> getCardBrandsList() {

        ArrayList<String> list = new ArrayList<String>();

        list.add("visa");
        list.add("master");
        list.add("Intl Maestro");
        list.add("amex");

        return list;
    }
}

休息端点:

@GetMapping("/card_brand/list")
    public ResponseEntity<?> getCurruncy() {
        return ResponseEntity.ok(cardBrandsListService.getCardBrandsList().entrySet().stream()
                .map(g -> new CardBrandsListDTO(g.getValue())).collect(Collectors.toList()));
    }

DTO:

public class CardBrandsListDTO {

    private String card_brand;

    public String getCard_brand() {
        return card_brand;
    }

    public void setCard_brand(String card_brand) {
        this.card_brand = card_brand;
    }
}

但我收到错误:The method entrySet() is undefined for the type ArrayList<String>映射 ArrayList 的正确 wya 是什么?

标签: javaspring

解决方案


您的休息端点应如下所示:

@GetMapping("/card_brand/list")
public ResponseEntity<List<CardBrandsListDTO>> getCurruncy() {
    return ResponseEntity.ok(cardBrandsListService.getCardBrandsList().stream()
            .map(g -> new CardBrandsListDTO(g)).collect(Collectors.toList()));

您正在调用entrySet(),它用于获取 Map 对象的一组条目(您没有)。此外,在 map 函数中,您的变量g是一个字符串(因为您要返回一个ArrayList<String>),因此您可以直接将其提供给构造函数。您也可以直接为 设置正确的类型ResponseEntity

更新:

你需要相应的构造函数:

public class CardBrandsListDTO {

    private String card_brand;

    public CarBrandsListDTO(String card_brand) {
        this.car_brand = car_brand;
    }

    //getter and setter
}

顺便说一句,我建议您重命名 DTO(为了便于理解)以及其中的字段(遵循命名约定)


推荐阅读