1

我正在尝试更改列表中某个值的值,但我无法使用 set 方法找到一种方法。

List<?> row = rse.next();
index = row.indexOf("nyc");
row.set(index, "New York");

因此,我将结果集中的一行结果抓取到 ArrayList 中,我被迫这样做,所以我使用 ArrayList 或数组。我必须使用列表。

我知道这些值都是字符串,有没有办法在列表中找到“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)  
4

2 回答 2

7

您的引用 List<?> 是通配符类型, List<String> 如果您知道列表是字符串的并且应该可以使用,请将其更改为。

于 2013-06-14T16:30:47.987 回答
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/

于 2013-06-14T16:42:18.653 回答