不能使用char类型的ArrayList作为方法的参数

J.O*_*sen 5 java generics

无法定义ArrayList<char>为参数validate.为什么不能这样做?尝试ArrayList<?>时有效.为什么?应该ArrayList<?>用来代替ArrayList<char>?有什么不同?

public boolean validate(ArrayList<char> args){ ... }
Run Code Online (Sandbox Code Playgroud)

错误: Syntax error on token "char", Dimensions expected after this token

Boz*_*zho 15

public boolean validate(List<Character> args){ ... }
Run Code Online (Sandbox Code Playgroud)

它必须是包装类型 - Character- List<Character>.您不能将泛型与原始类型一起使用.


Pau*_*Wee 7

public boolean validate(ArrayList<Character> args){ ... }
Run Code Online (Sandbox Code Playgroud)

在java中使用generic时,你不能使用原始数据类型,但你可以使用Character,它是表示原语的Object,char内存开销很小.