ArrayDeque类的字符

时间:2011-09-02 16:05:55

标签: java c++ generics

我正在尝试将我用C ++编写的paren balancer转移到Java。

我正在尝试使用Deque接口中的ArrayDeque类来实现堆栈,方法是声明一个像这样的字符的ArrayDeque:

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

并且编译器对它进行了扼杀声称 expected: reference
found: char

我错过了什么?

2 个答案:

答案 0 :(得分:7)

您不能将原始类型用作通用参数。您需要相应的Object包装器:

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

让我们更新我们的Box类以使用泛型。我们先创建一个   通过将代码public class Box更改为通用类型声明   public class Box<T>;这引入了一个名为T的类型变量,   可以在课堂内的任何地方使用。同样的技术也可以   也适用于接口。没有什么特别复杂的   关于这个概念。事实上,它与你已经完全相似   了解一般的变量。只需将T视为一种特殊的类型   变量,其“值”将是您传入的任何类型;这可以   任何类类型,任何接口类型,甚至是其他类型变量。的它   只是不能是任何原始数据类型。在这种情况下,我们   还要说T是Box类的正式类型参数。

     

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

请参阅:

答案 1 :(得分:0)

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