我有以下示例:
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;
}
在这段代码中,我可以理解 Enum 创建了一个 Enum 类型的 Sizes。
我的问题是: largeSize
是 EnumSet 类型的对象吗?这到底是什么意思?我真的很想更好地理解它。
原文由 Adam 发布,翻译遵循 CC BY-SA 4.0 许可协议
对于任何变量,其类型可在其声明中找到:
所以是的,
largeSize
(应该命名为largeSizes
因为它是一个集合)是类型EnumSet
它也应该被泛化,因此被声明为这意味着
largeSizes
的类型是EnumSet
。 AnEnumSet
is aSet
which contains enum instance of a specific enum type, in a more efficient way than otherSet
implementations (likeHashSet
,TreeSet
等)。要了解EnumSet
是什么,请阅读其 API 。