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 に答える