2012-05-07 69 views
4

无法将ArrayList<char>定义为参数validate。为什么它不能完成?当尝试ArrayList<?>它的作品。为什么?应该使用ArrayList<?>而不是ArrayList<char>?有什么不同?无法使用char类型的ArrayList作为方法的参数

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

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

回答

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

它是包装类型 - Character - List<Character>。您不能使用基本类型的泛型。

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

当在Java中使用通用的,你不能使用原始数据类型,但可以使用Character,这是代表原char在内存小的开销对象。

1

你可以尝试做一些像这样:public boolean validate(ArrayList<Character> args){ ... }

1

一般而言,当找你处理的是一个通用的对象,如ArrayList<T>,你需要使用的对象。 charCharacter之间的区别在于Character是一个对象,并且允许在通用对象内部使用。

作为参考,每个基元类型都有自己的包装器对象。你可以检查出here

1

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

ArrayList<Character>list = new ArrayList<Character>(); 
相关问题