zoukankan      html  css  js  c++  java
  • enum 的使用方法(java)

    作者QQ:1095737364    QQ群:123300273     欢迎加入!

    enum很像特殊的class,实际上enum声明定义的类型就是一个类。而这些类都是类库中Enum类的子类(java.lang.Enum<E>)。它们继承了这个Enum中的许多有用的方法。我们对代码编译之后发现,编译器将enum类型单独编译成了一个字节码文件:Color.class

    下面是一个简单的示例:

    Color.java:自定义的枚举及其使用方法,根据情况可以进行增删!
    public enum Color {
        RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
        // 成员变量:枚举RED("红色", 1)括号中的属性来定义
        private String name;
        private int index;
        // 构造方法:传递所有的属性
        private Color(String name, int index) {
            this.name = name;
            this.index = index;
        }
        // 1.通过编号得到名字
        public static String getNameByIndex(int index) {
            for (Color c : Color.values()) {
                if (c.getIndex() == index) {
                    return c.name;
                }
            }
            return null;
        }
        // 2.通过编号得到枚举
        public static Color getColorByIndex(int index) {
            for (Color c : Color.values()) {
                if (c.getIndex() == index) {
                    return c;
                }
            }
            return null;
        }
        // 3.通过名字得到编号
        public static int getIndexByName(String name) {
            for (Color c : Color.values()) {
                if (c.getName() == name) {
                    return c.index;
                }
            }
            return -1;
        }
        // 通过名字得到枚举
        public static Color getColorByName(String name) {
            for (Color c : Color.values()) {
                if (c.getName() == name) {
                    return c;
                }
            }
            return null;
        }
        //得到枚举的名字
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        //得到枚举的编号
        public int getIndex() {
            return index;
        }
        public void setIndex(int index) {
            this.index = index;
        }
        // 覆盖方法:设置自定义枚举输出(一般不用)
    //    @Override
    //    public String toString() {
    //        return this.index + "_" + this.name;
    //    }
    }

    下面是一个测试用例:(自己import Java包)

    EnumTest.java

    public class EnumTest {
        public enum Size{ SMALL, MEDIUM, LARGE, EXTRA_LARGE };//常量枚举(简单实用)
        public static void main(String[] args) {
            System.out.println(Size.SMALL);
            System.out.println(Color.BLANK);
            System.out.println(Color.getColorByIndex(1));
            System.out.println(Color.getColorByName("白色"));
            System.out.println(Color.getIndexByName("白色"));
            System.out.println(Color.getNameByIndex(1));
            // EnumSet的使用
            EnumSet<Color> weekSet = EnumSet.allOf(Color.class);
            for (Color color : weekSet) {
                System.out.println(color);
            }
            // EnumMap的使用
            EnumMap<Color, String> weekMap = new EnumMap(Color.class);
            weekMap.put(Color.GREEN, "绿");
            weekMap.put(Color.BLANK, "白");
            for (Iterator<Map.Entry<Color, String>> iter = weekMap.entrySet().iterator(); iter.hasNext();) {
                Map.Entry<Color, String> entry = iter.next();
                System.out.println(entry.getKey().name() + ":" + entry.getValue());
            }
        }
    }

    谢谢打赏...

  • 相关阅读:
    透明代理和匿名代理的区别
    WinForm webbrowser控件的使用
    c# WebBrowser开发参考资料--杂七杂八
    C# Winform WebBrowser控件
    使用webBrowser进行C#和JS通讯
    webBrowser 应用编程函数总结
    C#网页采集数据的几种方式(WebClient、WebBrowser和HttpWebRequest/HttpWebResponse)
    利用WebBrowser控件实现百度自动搜索
    c#winform使用WebBrowser 大全
    ros在QT下编程
  • 原文地址:https://www.cnblogs.com/yysbolg/p/6554269.html
Copyright © 2011-2022 走看看