驯服Tiger: 深入研究枚举类型 - 编程入门网
ouble>(Size.class);
map.put(Size.Small, 0.8);
map.put(Size.Medium, 1.0);
map.put(Size.Large, 1.2);
for (Map.Entry<Size, Double> entry : map.entrySet()) {
helper(entry);
}
}
private static void helper(Map.Entry<Size, Double> entry) {
System.out.println("Map entry: " + entry);
}
}
驯服Tiger: 深入研究枚举类型(4)时间:2011-01-31 IBM John Zukowski枚举集合的作用类似于特性的集合,或者类似于某个枚举类型的所有元素的值的子集。EnumSet 类拥有以下一系列的静态方法,可以用这些方法从枚举类型中获取单个元素: public static <E extends Enum<E>> EnumSet<E> allOf(Class<E> elementType) public static <E extends Enum<E>> EnumSet<E> complementOf(EnumSet<E> s) public static <E extends Enum<E>> EnumSet<E> copyOf(Collection<E> c) public static <E extends Enum<E>> EnumSet<E> noneOf(Class<E> elementType) public static <E extends Enum<E>> EnumSet<E> of(E e) public static <E extends Enum<E>> EnumSet<E> of(E first, E... rest) public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2) public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3) public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4) public static <E extends Enum<E>> EnumSet<E> of(E e1, E e2, E e3, E e4, E e5) public static <E extends Enum<E>> EnumSet<E> range(E from, E to) 一旦创建了 EnumSet,就可以像对待其他任何 Set 对象那样对待这组对象。 结束语 使用枚举类型的基本概念很简单。您可以先定义一个指定的、封闭的值集合。然后,在需要这些值中的某一个值时,可以通过它的名称来指定它。该名称携带为其设置的类型。对于不同的大小,不是说 1 = Small, 2 = Medium, 3 = Large,并且确保没有将 1 = Monday 的这类东西传递给期望获得一个 Size 的方法,而是传入 Small、Medium 或 Large 作为 Size,因为编译器会确保您没有传入 Monday。这就是枚举类型的简单性。这些枚举类型就是类本身,因此,可以对类进行的所有操作同样可以作用于枚举类型上。 此外,枚举类型支持拥有构造函数、实例方法和变量,等等。应该对枚举类型使用这些方面吗?尽管使用这些方法和新的支持类肯定没问题,但提供构造函数和覆盖方法会有问题。说出为枚举中的每个 Size 所支付的价格真的有意义吗?或者说,在一个拥有枚举类型 Size 变量的类中做这些更有意义吗? 小心使用这些特性,不要因为这些特性可用就使用它们。要考虑到系统的总体设计,不要只图快点完成工作。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |