Groovy列表类型转换求助:将ArrayList转为List适配API
Groovy中ArrayList转java.util.List的解决方案
首先要明确:java.util.ArrayList本身就是java.util.List接口的实现类,所以从类型兼容性来说,你完全可以直接把这个ArrayList对象传给要求List类型参数的API,不需要额外转换。
下面是几种常见的处理方式:
直接传递使用
因为ArrayList是List的子类,只要API的参数是List类型,直接传values即可,示例代码:// 假设API方法定义 void targetApi(List<String> inputList) { // API逻辑实现 } def values = ["Value"] // 实际类型为ArrayList targetApi(values) // 直接传递,自动向上转型,完全可行显式声明变量为List类型
如果希望在定义变量时就明确其类型为List,可以直接声明:List<String> values = ["Value"] println values.getClass() // 输出仍为java.util.ArrayList,但变量类型是List显式转换(可选,非必需)
虽然实际场景中不需要,但如果一定要显式做类型转换,可以用Groovy的as操作符或者强制类型转换:def values = ["Value"] // 使用as操作符 List<String> listValues = values as List<String> // 或者强制类型转换 List<String> listValues2 = (List<String>) values
内容的提问来源于stack exchange,提问作者Martina
相关产品推荐
相关产品推荐

