gpt4 book ai didi

java - 通用方法不适用于 'int' 类型变量?

转载 作者:行者123 更新时间:2023-12-05 01:05:21 24 4
gpt4 key购买 nike

我在使用两个变量时遇到了一些麻烦: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也可能有用

关于java - 通用方法不适用于 'int' 类型变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13563620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com