我如何调用泛型方法<item> </item>

时间:2013-05-05 21:39:32

标签: java arrays generics generic-programming

我的代码中有一些问题,我需要帮助我,谢谢 所以当我调用方法

时,我用数组创建RandomizedQueue的API
public static  <Item> void enqueue(Item item)
{
    if(item == null)throw new NullPointerException();
    s[N++] =  item;
}

在返回错误的客户端类中,我认为我在数组中的问题是如何创建static <Item> Item[](泛型类型)。

1 个答案:

答案 0 :(得分:1)

您无法在类中声明静态通用字段。即使不是类本身是通用的,也请参阅Declaring static generic variables in a generic class

编写泛型类RandomizedQueue,并实例化它(创建对象):

public class RandomizedQueue<Item>
{
    private Item[] items = new Item[CONSTANT];
    private int count = 0;

    public void enqueue(Item item)
    {
        if(item == null) throw new IllegalArgumentException("item mustn't be null");
        if(count == CONSTANT) throw new IllegalStateException("queue is full");
        items[count++] = item;
    }

    public Item dequeue()
    {
        if(count == 0) throw new IllegalStateException("queue is empty");
        int index = (int)(Math.random() * count);
        Item item = items[index];
        items[index] = items[--count];
        return item;
    }

    public int getCount()
    {
        return count;
    }
}