更新:请看评论,这是一个与maven环境有关的红鲱鱼。
我搜索了一个类似的问题,但没有找到我追求的同样的事情。我想写一个字符串实用程序类,它将集合组装成一个字符串,插入一个分隔符。
注意:请不要给我组装以逗号分隔的字符串的方法!我知道很多方法可以做到这一点。我想了解泛型方法机制。
例如:
List<String> strings = new ArrayList<>();
strings.add("A");
strings.add("B");
strings.add("C");
StringUtils.assemble(strings, ","); ==> "A,B,C"
所以我写了一个通用方法:
public static <T> String assemble(List<T> objs, String separator) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < objs.size(); i++) {
if (i != 0) {
sb.append(separator);
}
sb.append(objs.get(i).toString());
}
return sb.toString();
}
不幸的是,对该方法的调用会产生编译错误:
class C1 {
public String toString() { ... }
}
class C2 {
private List<C1> list;
void foo() {
StringUtils.assemble(list, ",");
}
}
[ERROR] [...]/C2.java:[557,38] cannot find symbol
symbol: method assemble(java.util.List<[...]C1>,java.lang.String)
location: class [...]StringUtils
是否有可能创建一个通用方法来完成我尝试做的事情?