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 中使用泛型时,不能使用原始数据类型,但可以使用Character,它是表示原始数据类型的 Object,char内存开销很小。

于 2012-05-07T13:42:15.647 回答
1

你可以尝试做这样的事情:public boolean validate(ArrayList<Character> args){ ... }

于 2012-05-07T13:45:13.287 回答
1

Java中char的包装类是Character,在ArrayList中添加char对象或验证char对象时,应将char指定为Character。

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

通常,当您处理通用对象时,例如ArrayList<T>,您需要使用对象。char和之间的区别在于CharacterCharacter是一个对象,并且允许在通用对象内部使用。

作为参考,每个原始类型都有自己的包装对象。你可以在这里查看

于 2012-05-07T13:49:34.160 回答