如何使用Generic Integer在类中创建Integer对象

时间:2014-09-12 20:35:43

标签: java class generics integer

当我尝试以下代码时,出现错误:

意外类型 要求:上课 found:type parameter Integer其中Integer是一个类型变量

class myClass <Integer>
{   
    public void myMethod()
    {
        Integer q = new Integer(5); //Not allowed
    }           
}

但是,允许使用以下代码

class myClass     
{   
    public void myMethod()
    {
        Integer q = new Integer(5); //Allowed
    }           
}

当我用泛型Integer声明类时,有人可以解释为什么我不允许在类中创建Integer对象吗?

Que:在这种情况下,是否仍然可以以及如何在类中创建Integer对象?

2 个答案:

答案 0 :(得分:2)

您声明Integer是泛型类型参数,它隐藏了 Integer在范围内的事实。你可以做几件事之一来解决这个问题。

为通用类型参数选择其他名称,例如T

class myClass<T>

或者,完全限定对类​​Integer的引用。

java.lang.Integer q = new java.lang.Integer(5);

答案 1 :(得分:1)

我认为你对可参数化的类有一个错误的想法。

声明可参数化的类:

class myClass <T>
{   
   T myGenericVariable;
   Integer i;
   public void myMethod()
   {
       this.i = new Integer(5); 

   }           
}

如何使用它:

myClass mc = new myClass<String>();//String or whatever you want