0

メソッドを書きました

public static final List<String> FooBar{

List<String> foobarlist = new ArrayList<String>();
 foobarlist.add("foo");
 foobarlist.add("bar");
 return foobarlist;

}

public static void man(String[] args){
   List<String> foobarlist = Foobar();
   String foo = foobarlist[0];<-- error here


}

このエラーが発生します

式の型は配列型である必要がありますが、リストに解決されました

4

6 に答える 6

5
String foo = foobarlist.get(0);

正直なところ、ここに投稿したものはコンパイルすらされません。とにかくその部分をクリーンアップすることをお勧めします..メソッド名はJavaでは小文字で始まり、最後に括弧があるはずです。

public static final List<String> foobar() {
于 2013-01-04T23:08:58.610 に答える
2

使用する

    String foo = foobarlist.get(0);

それ以外の

    String foo = foobarlist[0];

[..]表記は、リストではなく配列でのみ許可されます。

于 2013-01-04T23:09:17.720 に答える
1

私が見る2つの問題:

1.メソッド宣言に括弧がありません:

public static final List<String> FooBar() {  // Although "foobar" / "fooBar"
                                             // would better follow naming
                                             // conventions (camelCase).

2. List要素は:でアクセスされgetます

String foo = foobarlist.get(0);
于 2013-01-04T23:09:49.757 に答える
1

文字列の配列を使用すると、次のことが可能になります。

String foo = fooBarArray[0];

ただし、ここではリストを使用しているため、次を使用する必要があります。

String foo = foobarlist.get(0);

これは、Listがコンテナクラスであり、配列がまあ..配列:Pであるためです。

于 2013-01-04T23:11:33.433 に答える
1

.netで説明されているように、Javaにはインデクサーがありません。getメソッドを使用する必要があります。これを試して:

String foo = foobarlist.get(0);
于 2013-01-04T23:13:23.993 に答える
0

foob​​arlistはリストであり、配列ではないため、[]でリストの要素にアクセスすることはできません。最初の要素にアクセスするにはfoobarlist.get(0)を使用し、2番目の要素にアクセスするにはfoobarlist.get(1)を使用する必要があります。ここで配列とリストの違いを見てください

于 2013-01-04T23:14:57.977 に答える