`
davidxiaozhi
  • 浏览: 242113 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

枚举类型总结(转)

阅读更多

DK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。

用法一:常量

JDK1.5 之前,我们定义常量都是: public static  fianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

 

Java代码

public enum Color {  
  RED, GREEN, BLANK, YELLOW  
}  
 

 

用法二:switch

JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强。

 

Java代码

enum Signal {  
    GREEN, YELLOW, RED  
}  
public class TrafficLight {  
    Signal color = Signal.RED;  
    public void change() {  
        switch (color) {  
        case RED:  
            color = Signal.GREEN;  
            break;  
        case YELLOW:  
            color = Signal.RED;  
            break;  
        case GREEN:  
            color = Signal.YELLOW;  
            break;  
        }  
    }  
}  
 

 

 

用法三:向枚举中添加新方法

如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例。

 

Java代码

public enum Color {  
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);  
    // 成员变量  
    private String name;  
    private int index;  
    // 构造方法  
    private Color(String name, int index) {  
        this.name = name;  
        this.index = index;  
    }  
    // 普通方法  
    public static String getName(int index) {  
        for (Color c : Color.values()) {  
            if (c.getIndex() == index) {  
                return c.name;  
            }  
        }  
        return null;  
    }  
    // get set 方法  
    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;  
    }  
}  
 

 

 

用法四:覆盖枚举的方法

下面给出一个toString()方法覆盖的例子。

 

Java代码

public enum Color {  
    RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);  
    // 成员变量  
    private String name;  
    private int index;  
    // 构造方法  
    private Color(String name, int index) {  
        this.name = name;  
        this.index = index;  
    }  
    //覆盖方法  
    @Override  
    public String toString() {  
        return this.index+"_"+this.name;  
    }  
}  
 

 

用法五:实现接口

所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。

 

Java代码
    public interface Behaviour {  
        void print();  
        String getInfo();  
    }  
    public enum Color implements Behaviour{  
        RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);  
        // 成员变量  
        private String name;  
        private int index;  
        // 构造方法  
        private Color(String name, int index) {  
            this.name = name;  
            this.index = index;  
        }  
    //接口方法  
        @Override  
        public String getInfo() {  
            return this.name;  
        }  
        //接口方法  
        @Override  
        public void print() {  
            System.out.println(this.index+":"+this.name);  
        }  
    }  
 

 

用法六:使用接口组织枚举

 

    public interface Food {  
        enum Coffee implements Food{  
            BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO  
        }  
        enum Dessert implements Food{  
            FRUIT, CAKE, GELATO  
        }  
    }  
 

 

用法七:关于枚举集合的使用

java.util.EnumSet和java.util.EnumMap是两个枚举集合。EnumSet保证集合中的元素不重复;EnumMap中的 key是enum类型,而value则可以是任意类型。关于这个两个集合的使用就不在这里赘述,可以参考JDK文档。

分享到:
评论

相关推荐

    springboot项目中枚举类型的最佳实践

    总结,Spring Boot项目中枚举类型的最佳实践主要包括: 1. 定义枚举类型并提供枚举名称,提高代码可读性。 2. 使用自定义序列化器处理枚举名称和枚举值之间的转换,确保前后端交互的准确性。 3. 在数据库操作中,...

    枚举类型

    总结来说,枚举类型是C#中一种重要的数据类型,它为代码带来了可读性、类型安全和方便的操作。通过枚举,我们可以创建一组命名的常量,使代码更具表达力,同时减少了出错的可能性。在实际开发中,枚举类型常用于定义...

    hibernate映射枚举类型

    在Java编程中,枚举类型(Enum)是一种强大的工具,它可以提供固定的、预定义的值集合,常用于表示有限数量的状态或选项。在关系数据库中,我们可能也需要将这些枚举值存储为列的特定类型。Hibernate,作为Java中...

    mybatis中实现枚举自动转换方法详解

    总结来说,MyBatis的枚举自动转换功能通过自定义`BaseTypeHandler`子类实现,它可以简化枚举类型与数据库字段之间的转换,提高代码的可读性和可维护性。在实际项目中,可以针对不同的枚举类型创建不同的类型处理器,...

    spring boot 枚举使用的坑整理

    解决方法是重写枚举类型的toString()方法,以便正确地输出枚举类型的值。 坑四:枚举类型的ordinal()方法 枚举类型的ordinal()方法可能会出现问题。如果枚举类型的ordinal()方法没有被重写,可能会出现问题。例如...

    Hibernate中映射枚举类型

    ### Hibernate中映射枚举类型 #### 概述 Hibernate是一种强大的对象关系映射(ORM)框架,它允许开发者以面向对象的方式操作数据库。在实际应用中,经常会遇到需要将Java中的枚举类型映射到数据库的情况。枚举类型...

    枚举类型的定义和应用总结

    枚举类型(enumerated type),在编程语言中是一种强大的数据类型,它允许程序员定义一组具有特定名字的常量。这些名字通常表示特定的值,它们是整数类型的,且值的范围由程序员在定义时指定。枚举类型有助于提高...

    实例176 - 枚举类型的基本特性

    总结起来,枚举类型是编程语言中一种强大的工具,它提供了对一组相关常量的集中管理和便捷操作。通过枚举,我们可以增强代码的可读性和可维护性,同时利用其内置方法和扩展功能来满足各种需求。实例176可能就是演示...

    枚举 实现交通灯的转换

    通过枚举类型实现交通灯的转换,不仅使得代码简洁易懂,而且利用了枚举类型提供的特性,如不可变性、安全性等。此外,通过枚举类型提供的`nextLamp()`方法,可以很方便地实现交通灯状态之间的转换,同时还可以利用`...

    TypeScript中的类型安全字符串枚举

    字符串枚举是枚举类型的一种,它允许我们将枚举成员定义为字符串值,而不是默认的数字。 ```typescript enum StringEnum { Key1 = 'key1', Key2 = 'key2', Key3 = 'key3' } ``` 二、类型安全的优势 1. 防止...

    C枚举常量转换易语言源码

    这里的`Color`是枚举类型名,`RED`, `GREEN`, `BLUE`是枚举常量,它们默认从0开始逐次递增。你可以为它们指定特定的值,如: ```c enum Color { RED = 1, GREEN = 2, BLUE = 3 }; ``` 易语言中的枚举: 易语言是一...

    Java枚举数据类型.pdf

    总结来说,Java枚举类型是int枚举模式和String枚举模式的完美替代品。它不仅提供了更为严格和清晰的类型安全特性,还极大地提升了代码的可读性和易用性。在现代Java应用中,枚举类型被广泛用于替代旧有的枚举模拟...

    枚举语句enum用法详解

    在C#中,枚举类型是基于整数类型的,通常使用`enum`关键字来声明。例如: ```csharp enum Colors { Red, Green, Blue } ``` 上述代码定义了一个名为`Colors`的枚举,它有三个成员:`Red`、`Green`和`Blue`。默认...

    在C语言中的枚举类型.docx

    ### C语言中的枚举类型详解 #### 一、概述 在C语言中,枚举(Enumeration)作为一种特殊的数据类型,其主要功能在于定义一组固定的、具有整数值的命名常量。这种类型的引入极大提升了程序的可读性和可维护性。通过...

    枚举和函数返回值使用---工作内容之总结

    #### 枚举类型概述 枚举类型是C语言中的一种数据类型,主要用于处理那些取值被限定在一定范围内的变量。通过定义枚举类型,我们可以清晰地表达变量可能的所有取值,增强代码的可读性和可维护性。 **定义与使用** ...

    mybatis-plus使用@EnumValue处理枚举类型的示例代码

    总结来说,`@EnumValue`注解是MyBatis-Plus提供的一种处理枚举类型与数据库字段映射的方法,它简化了枚举在Java对象与数据库之间转换的过程,提高了代码的可读性和维护性。在实际开发中,合理使用`@EnumValue`可以...

    C#调用dll时的类型转换总结

    例如,`BOOL MessageBeep(UINT uType)`在C#中需要用户自定义一个枚举类型来匹配C++中的枚举。然后,通过`[DllImport]`属性导入函数,并使用定义好的枚举类型作为参数。 ### 结构体的转换 C#调用C++ DLL时,如果...

    C#语言,注册表使用,using Microsoft.Win32;枚举类型数据的Parse

    总结来说,在C#中处理注册表和枚举类型数据是常见的任务。`Microsoft.Win32`命名空间提供了一系列工具,使得程序员能够安全地读写注册表。而枚举类型则提供了一种强类型的方式来表示一组相关的值,`Parse`方法则是将...

    C#枚举的使用 欢迎下载

    总结而言,枚举类型在C#中是一种非常强大的工具,它不仅可以帮助程序员清晰地表示一组有限的值,还可以提高代码的可读性和维护性。正确地理解和使用枚举类型对于编写高质量的C#应用程序至关重要。

    Vue使用枚举类型实现HTML下拉框步骤详解

    在本文中,我们使用枚举类型 `StatusEnum` 来定义下拉框的选项,枚举类型的优点是可以将选项的值和显示的文本分离,方便后台数据的处理和前台的显示。在 `StatusEnum` 枚举类型中,我们定义了三个选项:`RED`、`...

Global site tag (gtag.js) - Google Analytics