You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Groovy中将PackageVersionResponse列表转为版本字符串列表

解决方案

Groovy 写法

Groovy 里可以直接用集合的 collect 方法(和 Node.js 的 map 功能等价),一步完成转换:

// 提取返回结果中的版本列表,转换为字符串列表
def versionList = pvs.packageVersions.collect { pv -> pv.version() }

如果pvs是ListPackageVersionsResponse对象,需要先提取其中的packageVersions列表,再通过collect遍历每个元素调用version()方法,最终得到目标字符串列表。

Java 写法

Java 提供两种常用实现方式,可根据项目的JDK版本选择:

Java 8+(Stream API)

借助 Stream 的map方法实现类似 Node.js 的映射逻辑:

import java.util.List;
import java.util.stream.Collectors;

// 提取版本列表,通过Stream转换为字符串列表
List<String> versionList = pvs.getPackageVersions()
    .stream()
    .map(pv -> pv.version()) // 也可使用方法引用:PackageVersionResponse::version
    .collect(Collectors.toList());

传统循环写法(兼容所有Java版本)

如果项目使用低版本JDK,用普通循环遍历收集结果:

import java.util.ArrayList;
import java.util.List;

List<String> versionList = new ArrayList<>();
for (PackageVersionResponse pv : pvs.getPackageVersions()) {
    versionList.add(pv.version());
}

补充修正说明

你的原代码有两处细节需要调整:

  1. ListPackageVersionsRequest的构建方式有误,正确写法为:
def request = ListPackageVersionsRequest.builder()
    .domain(domain)
    .repository(repo)
    .packageValue(packageValue) // 注意:package是Java/Groovy关键字,不能用作变量名,需重命名
    .build()
  1. 调用客户端方法时,Groovy/Java遵循小驼峰命名规范:client.listPackageVersions(request),而非ListPackageVersions

内容的提问来源于stack exchange,提问作者jaucourt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 14:42:42