java - 为什么我们在枚举中写 Integer 而不是 int ?

标签 java enumeration

这个问题根据情况而不同,您将我的问题标记为重复的问题并不能完全澄清我的问题情况答案。

导入java.util.Enumeration; 导入java.util.Vector;

public class EnumerationDemo {

    public static void main(String[] args) {
        Vector vector = new Vector();
        for (int item = 1; item <= 5; item++) {
            vector.addElement(item);
        }
        System.out.println(vector);
        Enumeration enumeration = vector.elements();
        while (enumeration.hasMoreElements()) {
            Integer integer = (Integer) enumeration.nextElement();
            System.out.println(integer);
        }
    }
}

为什么我们在枚举中写整数而不是 int?

最佳答案

您可以写 int 而不是 Integer,如下所示:

int integer = (Integer) enumeration.nextElement();

由于自动装箱/拆箱 ( demo ),它可以在 Java 版本 5 或更高版本上编译和运行。

您需要转换为 Integer 而不是 int 的原因是 Java 将基本类型与 Object 派生的引用分开处理类型,使得在标准 Java 集合中存储基元而不将其包装在其 Object 派生的等效项中是不可能的。

关于java - 为什么我们在枚举中写 Integer 而不是 int ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37514956/

相关文章:

java - PHP 和 Clojure (Java) 代码之间的原始 MD5 base64 编码字符串对于某些字符的不同结果

python - 当函数中有循环时将递归转换为迭代

java - 使用 java 泛型迭代枚举值

java - 如何在不写入 "if statements"的情况下初始化输入字段?

.net - 当类没有实现 IEnumerable 时,GetEnumerator 方法是否应该仍然是幂等的

java - Android 多种实现

java - 使用 ContainerRequestFilter 在 Jersey WebService 中自定义 @RolesAllowed 角色

Java:将泛型类型传递给另一个泛型类型类

java - 如何在启动后将jBrowser添加到框架中?

swift - 使用 nextObject() 枚举集合没有按预期工作?