定义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 []
答案 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;
}
...
}
延伸不要为此行事..