不能定义ArrayList<char>
为 的参数validate
。为什么做不到?尝试ArrayList<?>
时它有效。为什么?应该ArrayList<?>
用ArrayList<char>
? 有什么区别?
public boolean validate(ArrayList<char> args){ ... }
错误:Syntax error on token "char", Dimensions expected after this token
public boolean validate(List<Character> args){ ... }
它必须是包装器类型 - Character
- List<Character>
。您不能将泛型与原始类型一起使用。
public boolean validate(ArrayList<Character> args){ ... }
在 java 中使用泛型时,不能使用原始数据类型,但可以使用Character,它是表示原始数据类型的 Object,char
内存开销很小。
你可以尝试做这样的事情:public boolean validate(ArrayList<Character> args){ ... }
Java中char的包装类是Character,在ArrayList中添加char对象或验证char对象时,应将char指定为Character。
ArrayList<Character>list = new ArrayList<Character>();
通常,当您处理通用对象时,例如ArrayList<T>
,您需要使用对象。char
和之间的区别在于Character
它Character
是一个对象,并且允许在通用对象内部使用。
作为参考,每个原始类型都有自己的包装对象。你可以在这里查看。