[英]Java Set to Object[][]
我有一个Set<String>
,我想将其用于TestNG参数化测试。
我想从<"a", "b", "c">
转到{{"a"}, {"b"}, {"c"}}
我试过了:
Set<String> elements = Stream.of("a", "b", "c").collect(Collectors.toSet());
Object[][] elementsArray = (Object[][]) elements.stream()
.map(t -> new Object[] {t})
.toArray(Object[]::new);
但这不起作用。 关于如何实现这一目标的任何指针? 也欢迎非lambda解决方案。
除了创建Object[][]
的方法引用之外,您所做的一切都正确。 您正在使用包含字符串的1D数组元素构造2D数组。
更改
Object[]::new
至
Object[][]::new
一旦完成,就不需要强制转换为Object[][]
; 也将其删除。
您只需要Object[][]::new
:
Set<String> elements = Stream.of("a", "b", "c").collect(Collectors.toSet());
Object[][] elementsArray = elements.stream()
.map(t -> new Object[] {t})
.toArray(Object[][]::new);
使用Object[]::new
您可以创建Object[]
,然后将其强制转换为Object[][]
(这将失败)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.