我在使用两个变量时遇到了一些麻烦:int 和 Integer。
它们大致相同,但是(如下面的代码所示)它们的行为并不总是相同。
这是我的问题:
这段代码运行得非常完美。我创建了一个通用方法 printArray ,它需要任何类型变量的数组(因为它是通用的)才能工作。
这里我使用变量类型Integer。
但是,当我将数组“getal”类型更改为 int(而不是 Integer)时,方法 printArray 不再起作用。这是为什么?泛型方法不适用于 int 类型变量吗?
package Oefenen;
public class printArray
{
public static void main (String args[])
{
Integer[] getal = {10, 20, 30, 40, 50};
printArray(getal);
}
public static <E> void printArray (E[] intArray)
{
for (E element : intArray)
{
System.out.printf("%s\n", element);
}
}
}
ps:如果我将通用方法更改为仅适用于 int 的方法,它确实有效。
所以我在想问题是:通用方法不适用于 int 。
我是吗
泛型方法仅适用于 Object 的子类型。 Integer 是 Object 的子类型。 int 不是对象而是原语。所以这是预期的行为。这link很有用
这相关的question可能也有用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)