2011-09-02 23 views
2

我正試圖將我用C++編寫的平衡器移到Java中。ArrayDeque字符類

我試圖通過聲明的字符,像這樣的ArrayDeque實現從雙端隊列接口的ArrayDeque類堆棧:

Deque<char> parens = new ArrayDeque<char>();

和編譯器扼流圈它聲稱
expected: reference
found: char

我錯過了什麼?

+0

嘗試此,的Deque 括號=新ArrayDeque (); – doNotCheckMyBlog

回答

7

您不能將基元類型用作通用參數。您需要相應的對象包裝:

Deque<Character> parens = new ArrayDeque<Character>(); 

讓我們更新我們的Box類使用泛型。我們首先通過將代碼public class Box更改爲 public class Box<T>來創建 泛型類型聲明;這將引入一個類型變量,名稱爲T, ,可以在班級內的任何地方使用。同樣的技術也可以被應用於接口 。關於這個概念沒有特別複雜的 。事實上,這與你已經對 瞭解變量的內容十分相似。只要想到T作爲一種特殊的 變量,其「價值」將是你傳入的任何類型;這可以是任何類類型,任何接口類型,甚至是其他類型變量。 它 只是不能是任何原始數據類型。在這種情況下,我們 也說T是Box類的正式類型參數。

[來源:Java Tutorial : Generics : Generic Types]

參見:

+0

我錯過了機會,通過45秒:(。找你太快了:) – doNotCheckMyBlog

+0

@krio我知道這種感覺:-) –

0

您需要使用ArrayDeque<Character>在Java中。