java - 获取 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 是什么?
解决方案
您的休息端点应如下所示:
@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(为了便于理解)以及其中的字段(遵循命名约定)
推荐阅读
- android - 如何解决不同范围的绑定?
- swift - SwiftUI 更改 macOS 的文本大小
- reactjs - 反应钩子避免重新渲染并保留所需的deps
- xml - Powershell - 在没有结束标签的情况下导出 XML - OFX 格式 SGML?
- php - PHP - 如何总结来自共享相同键的多个数组中的元素
- prometheus - 有没有办法查询一个指标并使用它的标签进行人工操作?
- python - pandas if-elif 语句不创建新的数据框列
- haskell - 单子到 IO 单子 - 简单而惯用的方式?
- c++ - 我的 C++ 程序中的一些代码使程序崩溃。我正在实现 BFS 算法
- assembly - gnu 声称支持带有 $ 的额外本地符号。为什么此代码编译时错误声明符号已被使用?