我对Java中枚举类型中的值()方法是如何工作的有点好奇。如Java规范文档中所见,我们可以在a中为每个循环遍历某个枚举类型的所有值。例如。
for (Planet p : Planet.values()) {
System.out.printf("Your weight on %s is %f%n",
p, p.surfaceWeight(mass));
}
我认为对于每个循环,迭代所有值。在这个调用中,我们在每个循环调用中重复调用一个方法,那么它将如何迭代所有枚举类型或值()方法使用某种迭代器。有人能帮我记录下这个方法的实现吗?
方法values()
在编译时生成。
每个枚举都是java的一个子类。lang.Enum。在内部,它将枚举元素保存在一个数组中。
调用values()
时,将生成并复制一个新数组,然后再将其返回给您。
您是对的-. value()
返回枚举可能值的数组。
这个数组可以用于迭代,在每个迭代步骤中,您可以得到这个枚举的另一个值,您可以像其他任何值一样使用它,例如,对它们调用方法。
value()
方法返回一个包含enum
值的数组。在Java中,您可以使用for(Object obj: arr)
语法遍历数组。这只是一个语法糖。在编译过程中,将创建隐式int
局部变量,并像这样重写循环:
Planet[] vals = Planet.values();
for(int i=0; i<vals.length; i++) {
Planet p = vals[i];
System.out.printf("Your weight on %s is %f%n",
p, p.surfaceWeight(mass));
}
有没有更好的办法解决这个问题?
我想知道如何创建一个循环,为枚举的每个项重复,并仍然验证我在正确的枚举(索引)中 这段代码只是我想做的一个示例,对每种类型的枚举重复循环,然后验证我是否在第一个、第二个枚举中,等等,然后打印当前枚举
问题内容: 有没有一种方法可以解决由两个互相引用的枚举引起的类加载问题? 我有两组枚举Foo和Bar,它们的定义如下: 上面的代码作为输出产生: 我知道为什么会发生- JVM开始对Foo进行类加载;它在Foo.A的构造函数中看到Bar.Alpha,因此开始加载Bar。它在对Bar.Alpha的构造函数的调用中看到Foo.A引用,但是(因为我们仍然在Foo.A的构造函数中)Foo.A此时为null,
本文向大家介绍java 中枚举类enum的values()方法的详解,包括了java 中枚举类enum的values()方法的详解的使用技巧和注意事项,需要的朋友参考一下 java 中枚举类enum的values()方法的详解 前言: 关于枚举,相信使用的已经很普遍了,现在主要写的是枚举中的一个特殊方法,values(), 为什么说特殊呢,因为在Enum 的 API 文档中也找不到这个方法。接下
我在一个扩展名为的单独文件中创建了以下张贴的颜色枚举。我想知道如何在发布的代码中使用或调用中的枚举,以便能够迭代抛出它。换句话说,如何循环遍历下面发布的枚举,以便设置for,以及当。 显然,双问题mart将被通过枚举的迭代所取代。