我有一个返回类型的通用方法。我知道它几乎没有任何实际用途,具有原始数据类型的泛型,但我正在试验。我无法理解,当将primitive
数据类型传递给它的参数时method 3
它正在工作,那么为什么强制转换在method 4
如果它在方法 3 中适用于原始数据类型,那么为什么不在方法 4 中。
class Demo
{
List<Demo> list = new ArrayList<Demo>();
int id;
int b[];
public <E> List<E> showList() //Method 1
{
return (<E>)list; //This works fine
}
public <E> List <E> showList2(List<E> x) //Method 2
{
return x; // This works fine
}
public <E> E showNumber(E x) //Method 3,called as new Demo().showNumber(2);
{
return x; //works for every primitive data type
}
public <E> E show() //Method 4
{
return (E)id; // Not working
}
}