我有以下示例:
import java.util.EnumSet;
import java.util.Iterator;
public class SizeSet {
public static void main(String[] args) {
EnumSet largeSize = EnumSet.of(Size.XL,Size.XXL,Size.XXXL);
for(Iterator it = largeSize.iterator();it.hasNext();){
Size size = (Size)it.next();
System.out.println(size);
}
}
}
enum Size {
S, M, L, XL, XXL, XXXL;
}
Run Code Online (Sandbox Code Playgroud)
在这段代码中,我可以理解Enum创建了一个Enum类型的大小.
我的问题是:是largeSizeEnumSet类型的对象吗?它到底意味着什么?我真的想更好地理解它.
在Java中似乎有可能写出这样的东西:
private enum TrafficLight {
RED,
GREEN;
public String toString() {
return //what should I return here if I want to return
//"abc" when red and "def" when green?
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我想知道当枚举值为红色时是否可以返回toString方法"abc",当它为绿色时返回"def".此外,是否可以在C#中执行此操作,您可以在哪里执行此操作?:
private enum TrafficLight {
RED = 0,
GREEN = 15
...
}
Run Code Online (Sandbox Code Playgroud)
我试过这个但是它但是我遇到了编译器错误.
谢谢
为什么valueOf有两个参数?
public static <T extends Enum<T>> T valueOf?(Class<T> enumType, String name)参数:
enumType - 要从中返回常量的枚举类型的 Class 对象
name - 要返回的常量的名称
但我在网上读到的大多数例子都说:
enum WorkDays {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY;
}
Run Code Online (Sandbox Code Playgroud)
测试:
WorkDays day1 = WorkDays.valueOf("MONDAY");
System.out.println(day1); // >>> MONDAY
Run Code Online (Sandbox Code Playgroud)
该方法似乎只使用了一个参数?
我正在阅读Java中的枚举.枚举可以通过集合或字符串数组或用户定义类型实现.在Java 5中引入枚举的主要目的是什么?
谢谢,Sehensaa
java枚举是单例吗?
例如 :
public enum State {
ACTIVE(0),
PENDING(1),
DELETED(2),
}
State s = State.ACTIVE;
State s2 = State.PENDING;
State s3 = State.PENDING;
Run Code Online (Sandbox Code Playgroud)
每次我们使用 State.FOO 时,java 都会创建新实例吗??