我正試圖將我用C++編寫的平衡器移到Java中。ArrayDeque字符類
我試圖通過聲明的字符,像這樣的ArrayDeque實現從雙端隊列接口的ArrayDeque類堆棧:
Deque<char> parens = new ArrayDeque<char>();
和編譯器扼流圈它聲稱
expected: reference
found: char
我錯過了什麼?
我正試圖將我用C++編寫的平衡器移到Java中。ArrayDeque字符類
我試圖通過聲明的字符,像這樣的ArrayDeque實現從雙端隊列接口的ArrayDeque類堆棧:
Deque<char> parens = new ArrayDeque<char>();
和編譯器扼流圈它聲稱
expected: reference
found: char
我錯過了什麼?
您不能將基元類型用作通用參數。您需要相應的對象包裝:
Deque<Character> parens = new ArrayDeque<Character>();
讓我們更新我們的Box類使用泛型。我們首先通過將代碼
public class Box
更改爲public class Box<T>
來創建 泛型類型聲明;這將引入一個類型變量,名稱爲T
, ,可以在班級內的任何地方使用。同樣的技術也可以被應用於接口 。關於這個概念沒有特別複雜的 。事實上,這與你已經對 瞭解變量的內容十分相似。只要想到T
作爲一種特殊的 變量,其「價值」將是你傳入的任何類型;這可以是任何類類型,任何接口類型,甚至是其他類型變量。 它 只是不能是任何原始數據類型。在這種情況下,我們 也說T
是Box類的正式類型參數。
參見:
我錯過了機會,通過45秒:(。找你太快了:) – doNotCheckMyBlog
@krio我知道這種感覺:-) –
您需要使用ArrayDeque<Character>
在Java中。
嘗試此,的Deque括號=新ArrayDeque (); –
doNotCheckMyBlog