gpt4 book ai didi

java - 如何在java中将一个列表类型转换为另一个列表?

转载 作者:行者123 更新时间:2023-11-29 04:07:17 24 4
gpt4 key购买 nike

我将 Cache 声明为 Map:

private Cache<String,Object> operatingParametersCache;

我正在从服务类中获取数据并将其放入缓存中:

List<OperatingParametersDTO> objList=this.operatingParamService.getOperatingParamDTO();

operatingParametersCache = cacheManager
.createCache("cacheOfOperatingService", CacheConfigurationBuilder
.newCacheConfigurationBuilder(
String.class,Object.class,
ResourcePoolsBuilder.heap(100000)).withExpiry(Expirations.timeToLiveExpiration(Duration.of(60000,
TimeUnit.SECONDS))));

operatingParametersCache.put("CACHE_OPERATING_PARAMETER",objList);

我尝试使用以下方法从缓存中获取值:

 List<Object> operatingvalues = new ArrayList<>();
operatingParametersCache.forEach(entry -> operatingvalues.add(entry.getValue()));
System.out.println(operatingvalues);

我想转换这个 List<Object>List<OperatingParametersDTO> , 所以我尝试使用 :

List<OperatingParametersDTO> listA = new ArrayList<OperatingParametersDTO>(operatingvalues);

但我得到:无法解析构造函数'ArrayList(java.util.List)'

最佳答案

最简单的方法是声明一个具有适当类型的列表:

List<OperatingParametersDTO> operatingvalues = new ArrayList<>();

并转换:

operatingParametersCache.forEach(entry -> operatingvalues.addAll(((List) entry.getValue()).stream().map(el -> (OperatingParametersDTO) el).collect(Collectors.toList())));

你也可以转换每一个元素:

List<OperatingParametersDTO> listA = operatingvalues.stream()
.map(el -> (OperatingParametersDTO) el)
.collect(Collectors.toList());

您不能将一种类型的集合转换为另一种类型的集合,更多详情 here .

关于java - 如何在java中将一个列表类型转换为另一个列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57815908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com