Java List <! - ? - > Set Method

时间:2013-06-14 16:27:37

标签: java list arraylist

我正在尝试更改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)  

2 个答案:

答案 0 :(得分:7)

您的参考 List<?>  是一个通配符类型,将其更改为 List<String>  如果你知道列表是字符串的,它应该可以工作。

答案 1 :(得分:0)

可以修改使用通配符键入的Java文档集合,因为您可以知道集合可以支持的实际类型。

您可以使用super关键字检索集合中的边界。

List<? super String> list = new ArrayList<>();
list.add( new String( "one" ) );
list.set( 0,"two"  );

访问:http://docs.oracle.com/javase/tutorial/java/generics/