5

ArrayList<char>の引数として定義することはできませんvalidate。なぜそれができないのですか?それを試しArrayList<?>てみるとうまくいきます。なんで??ArrayList<?>の代わりに使用する必要がありArrayList<char>ます 違いはなんですか?

public boolean validate(ArrayList<char> args){ ... }

エラー:Syntax error on token "char", Dimensions expected after this token

4

5 に答える 5

16
public boolean validate(List<Character> args){ ... }

ラッパータイプである必要がありますCharacter--- List<Character>。プリミティブ型でジェネリックを使用することはできません。

于 2012-05-07T13:42:29.233 に答える
7
public boolean validate(ArrayList<Character> args){ ... }

Javaでgenericを使用する場合、プリミティブデータ型を使用することはできませんが、メモリ内のオーバーヘッドがほとんどないプリミティブを表すオブジェクトであるCharacterを使用できます。char

于 2012-05-07T13:42:15.647 に答える
1

あなたはそのようなことをしようとすることができます:public boolean validate(ArrayList<Character> args){ ... }

于 2012-05-07T13:45:13.287 に答える
1

一般に、などの一般的なオブジェクトを扱う場合ArrayList<T>は、オブジェクトを使用する必要があります。との違いはcharCharacterそれCharacterがオブジェクトであり、ジェネリックオブジェクト内での使用が許可されていることです。

参考までに、各プリミティブ型には独自のラッパーオブジェクトがあります。あなたはここでそれをチェックすることができます。

于 2012-05-07T13:49:34.160 に答える
1

JavaのcharのラッパークラスはCharacterであり、charオブジェクトを追加するときまたはArrayListでcharオブジェクトを検証するときは、charをCharacterとして指定する必要があります。

ArrayList<Character>list = new ArrayList<Character>();
于 2012-05-07T13:53:38.257 に答える