我正在尝试更改List中某个值的值,但是我无法使用set方法找到一种方法。
List<?> row = rse.next();
index = row.indexOf("nyc");
row.set(index, "New York");
所以我从结果集中获取一行结果到ArrayList中,我不得不这样做,所以我使用了ArrayList或数组。我必须使用List。
我知道值都是String,有没有办法在列表中找到“nyc”,并将其替换为“New York”。目前上面的代码给出了这个错误:
The method set(int, capture#4-of ?) in the type List<capture#4-of ?> is not
applicable for the arguments (int, String)
答案 0 :(得分:7)
您的参考
List<?>
是一个通配符类型,将其更改为
List<String>
如果你知道列表是字符串的,它应该可以工作。
答案 1 :(得分:0)
可以修改使用通配符键入的Java
文档集合,因为您可以知道集合可以支持的实际类型。
您可以使用super
关键字检索集合中的边界。
List<? super String> list = new ArrayList<>();
list.add( new String( "one" ) );
list.set( 0,"two" );