我需要从Xtend调用Java方法,该方法需要一个二维数组,例如:
javafunc(字符串[] [] {{“ 0”,“ 1”}。{“ 2”,“ 3”}})
我最初的想法是编写一个Java静态方法来接受数组列表, 将其转换为二维数组,然后调用基础Java方法。在此之前,我想知道是否有更好的解决方案。这个有点难看。
答案 0 :(得分:0)
如果要避免使用数组,可以使用成对列表。
#["0" -> "1", "1" -> "2"]
我将使用扩展功能对其进行转换,而不是为Java函数编写包装器。这样就更可重用。
javafunc(#["0" -> "1", "1" -> "2"].toArrays)
def String[][] toArrays(Iterable<Pair<String,String>> pairs) {
// convert pairs to 2d array ...
}
这是否是一个好的解决方案,虽然在某种程度上取决于数据表示什么,但是如果键和值之间没有明显的关系,则对可能会造成混淆。