一个task 需要对对8个元件页面显示字段的值进行格式化输出。
例如:valid:0 无效 ,1 有效 ;swidth:0 关 ,1 开 ;stop :0 停用 ,1 运行
通常我们会想到用static final ,如下
package cn.com.ld.enumpractise;
public class StaticConstants {
// @Fields SWITCH_OFF : 开
public static final int SWITCH_OFF = 0;
// @Fields SWITCH_ON : 关
public static final int SWITCH_ON = 1;
// @Fields VALID_FLASE :无效
public static final int VALID_FLASE = 0;
// @Fields VALID_TRUE : 有效
public static final int VALID_TRUE = 1;
// @Fields STOP_NO : 停用
public static final int STOP_NO = 0;
// @Fields STOP_YES : 运行
public static final int STOP_YES = 1;
}
虽然用常量可以标识一些字段的固定值,但是对于格式化输出就困难了,页面拿到的不是0,就是1,所以要做一些判断才能确定到底是那个字段的格式化输出。
为了能让常量拥有更多的语义,更便于格式化输出,便想起了枚举。把枚举当做常量来用,就省去了很多的逻辑判断。
package cn.com.ld.enumpractise;
public enum EnumConstants {
SWITCH_OFF(0, "OFF"), SWITCH_ON(1, "ON"), VALID_FALSE(0, false), VALID_TRUE(
0, true), STOP_NO(0, "NO"), STOP_YES(1, "YES");
private int key;
private Object value;
private EnumConstants(int key, Object value) {
this.key = key;
this.value = value;
}
public static void main(String[] args) {
for (EnumConstants constant : EnumConstants.values()) {
System.out.println("constant.name:" + constant + " key:"
+ constant.key + " value:" + constant.value);
}
}
}
枚举既可以返回常量的名称 可以返回常量的value ,或是value的一个格式化内容,语义更强。 而且枚举是一个class ,有更强的表现力。
分享到:
相关推荐
2. **数学常量**:如 π、e 等数学常量,可以通过 `static final` 定义并提供给整个应用使用。 3. **枚举类型**:定义一组有限的固定值,例如颜色(RED、GREEN、BLUE),使用 `enum` 类型,实际上 `enum` 类型本身...
在 JDK 1.5 之前,我们定义常量都是使用 `public static final` 修饰符的变量。例如: ```java public static final int RED = 1; public static final int GREEN = 2; public static final int BLANK = 3; ``` 这种...
private static final Color[] ENUM_VALUES; static { // 初始化过程,对枚举类的所有枚举值对象进行第一次初始化 RED = new Color("RED", 0); BLUE = new Color("BLUE", 1); // 其他元素的初始化类似 ENUM_...
在配置文件中,用final常量表示配置项,方便管理和修改;在设计模式中,枚举常量可以用于表示策略或状态;在单元测试中,注解常量可以作为测试条件。 了解并熟练掌握Java常量的应用,不仅可以使代码更加清晰、易于...
在本文中,我们将深入探讨Java枚举的定义、使用方法以及它如何改善传统使用`static final`常量的模式。 首先,让我们看看传统的`static final`常量表示枚举的方式。例如,清单1展示了如何使用`public static final`...
相较于传统的使用`static final`字段来表示常量的做法,枚举提供了更加丰富的特性和更为严谨的类型安全机制。本文将深入探讨枚举类型的关键概念及其应用场景,并对比使用`static final`字段的优劣。 #### 二、枚举...
在Java中,`enum`(枚举)是一种特殊的类,用于定义一组常量值。它可以帮助开发者限制一个变量的可能值,使其只能从预定义的一组选项中选择。枚举提供了一种更安全、更清晰的方式来处理一组固定的值。 #### 二、...
它在许多场景下比常量接口或静态final变量更安全、更方便。本篇将通过"Java Enum使用Demo源码"深入探讨Java枚举的用法。 首先,枚举在Java中是一个类,可以通过`enum`关键字来声明。例如,我们可以创建一个表示星期...
传统的定义方式是通过 `public final static` 关键字来定义一系列的整型常量,例如: ```java public class Light { public final static int RED = 1; public final static int GREEN = 3; public final static...
通过上述分析,可以看出`Enum`不仅是一种数据类型,更是一种设计模式,它集成了封装、继承和多态等面向对象编程的核心概念,为开发者提供了强大的工具箱,用以处理固定集合的常量。然而,`Enum`的使用也需要遵循一定...
在Java中,enum是一种特殊的类,用于定义一组相关的常量。每个enum实例都是一个对象,可以通过其名称或ordinal(索引)进行访问。在Android中,如果想要在Intent中传递enum,有以下几种常见的策略: 1. **通过...
枚举值都是 public static final 的,也就是我们经常所定义的常量方式,因此枚举类中的枚举值最好全部大写。 2、枚举类的构造器 枚举类的构造器有很大的不同: (1)构造器只是在构造枚举值的时候被调用。例如,...
例如,定义一个 Season 类,使用 public static final int 来定义四季: ```java public class Season { public static final int SPRING = 1; public static final int SUMMER = 2; public static final int ...
在代码中,可以像使用普通常量一样使用这些类常量,但它们更具有封装性,因为它们是类的一部分: ```php $color = Color::RED; ``` ### 4. 枚举的局限性 使用类常量模拟枚举有一些局限性: - **类型安全**:PHP不...
- 类级(静态)常量通常也用`final`修饰,例如`public static final`,这样的变量被称为常量,如数学中的圆周率π。一旦赋值,就不能更改,常用于定义程序中的固定值。 - `final`修饰的实例变量(非静态)意味着它...
8. **避免使用`public static final`的类属性**: - 尽管这可以创建全局常量,但这样做可能导致全局状态的混乱和难以调试的问题。优先考虑使用`enum`或静态工厂方法来提供单例常量。 9. **常量池**: - Java...
枚举类必须使用 `enum` 关键字声明,语法如下: ```java enum 枚举修饰符 enumname { 枚举常量1, 枚举常量2, ... ; } ``` 其中,`枚举修饰符` 可以是访问修饰符(如 `public`, `protected`, `private` 或者...
为了解决ENUM类型的缺点,可以使用常量的方式来定义一些固定的值。例如,定义一年中的四个季节可以使用如下代码: ```java public class ConstantSeason { public static final int SPRING = 1; public static ...
相比于使用常量接口或字符串来表示固定集合,枚举提供了更加安全且易于管理的方式来处理这些常量。自Java 5起,枚举作为语言的一部分被引入,这极大地增强了其功能性和灵活性。 #### 二、Java枚举的基本概念 1. **...