Queue类型不是通用的;它不能使用参数<customer> </customer>进行参数化

时间:2012-03-15 14:57:38

标签: java eclipse

定义objQueue也会得到相同的结果。

public class objQueue extends Vector<Object>
{
...
}

...

objQueue<Customer>[] line=new objQueue<Customer>[num]; //error given on this line

我将其更改为公开class objQueue<Object> extends Vector<Object>,但现在却说Cannot create a generic array of objQueue<Customer>。我想定义自己的队列,我应该命名Queue还是其他什么来避免冲突?我正在使用import java.util.*;

如果我将其更改为objQueue<Customer> [] line=new objQueue[num];,则会发出警告:类型安全:objQueue []类型的表达式需要未经检查的转换以符合objQueue []

2 个答案:

答案 0 :(得分:6)

Queue应该没问题,假设您的意思是java.util.Queue。您无法为objQueue指定类型参数,因为未声明为是通用的。您必须将其声明为:

public class ObjQueue<E> extends Vector<E>

或类似的东西。

答案 1 :(得分:0)

如果你想声明一个类型是通用的,它通常会定义如下:

class Shop <P> 
{//P = Product
P p;
public Shop(P p) {
this.p = p;
}
...
}

延伸不要为此行事..