2012-05-07 73 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>(); 
相關問題