zoukankan      html  css  js  c++  java
  • 【译】Java中的枚举

    前言

    译文链接:http://www.programcreek.com/2014/01/java-enum-examples/

    Java中的枚举跟其它普通类很像,在其内部包含了一堆预先定义好的对象集合;

    下面是若干个关于枚举的例子,可以帮助我们更好的使用枚举类型;

    一个简单的例子

    package simplejava;
    
    enum Color {
        RED, YELLOW, BLUE; // each is an instance of Color
    }
    
    public class Q5 {
    
        public static void main(String[] args) {
            for (Color color : Color.values()) {
                System.out.println(color);
            }
        }
    }

    结果输出:

    RED
    YELLOW
    BLUE

    调用构造方法

    package simplejava;
    
    enum Color {
        RED(1), YELLOW(2), BLUE(3); // each is an instance of Color
        private int value;
        private Color(int i) {
            this.value = i;
        }
        public void printValue(){
            System.out.println(this.value);
        }
    }
    
    public class Q5 {
    
        public static void main(String[] args) {
            for (Color color : Color.values()) {
                color.printValue();
            }
        }
    }

    结果打印:

    1
    2
    3

    什么时候使用枚举

    Java中的枚举与普通类很像,内部包含了一堆预先定义好的对象集合;

    一个比较好的使用场合是阻止无效参数,如下代码示例:

    public void doSomethingWithColor(int color);

    这是一个模棱两可的接口,其他开发人员根本不清楚往这个接口传入哪些参数,只知道是int类型;

    举个例子,假如你有一个枚举类型Color,包含BLACK,RED两个对象集合,那么这个接口就变成这样:

    public void doSomethingWithColor(Color color);

    使用枚举类型,将大大增强代码的可读性,同时可以防止传入无效的参数;

  • 相关阅读:
    《算法竞赛进阶指南》0x42树状数组 楼兰图腾
    《算法竞赛进阶指南》0x41并查集 奇偶游戏
    .NET技术-常规操作
    TFS-在windows上配置自动化部署
    * 常用软件下载
    Docker 修改网桥网段
    Docker
    Docker
    NETCORE
    .NET框架
  • 原文地址:https://www.cnblogs.com/chenpi/p/5486445.html
Copyright © 2011-2022 走看看