用枚举enum替代int常量

枚举的好处:

1. 类型安全性

2.使用方便性

public class EnumDemo {
    enum Color{
        RED(3),BLUE(5),BLACK(8),YELLOW(13),GREEN(28);
        private int colorValue;
        private Color(int rv){
         this.colorValue=rv;
        }
        private int getColorValue(){
            return colorValue;
        }   

        private int value(){
            return ordinal()+1;
        }
}
    public static void main(String[] args) {
        for(Color s : Color.values()) {
            //enum的values()返回一个数组,这里就是Seasons[]
            System.out.println(s.value()+":"+s.name()+"="+s.getColorValue());
        }
    }
}   

output:

1:RED=3
2:BLUE=5
3:BLACK=8
4:YELLOW=13
5:GREEN=28

其中,

    /**
     * Returns the ordinal of this enumeration constant (its position
     * in its enum declaration, where the initial constant is assigned
     * an ordinal of zero).
     *
     * Most programmers will have no use for this method.  It is
     * designed for use by sophisticated enum-based data structures, such
     * as {@link java.util.EnumSet} and {@link java.util.EnumMap}.
     *
     * @return the ordinal of this enumeration constant
     */
    public final int ordinal() {
        return ordinal;
    }
时间: 2024-07-30 13:52:25

用枚举enum替代int常量的相关文章

Item 30 用enum代替int常量类型枚举,string常量类型枚举

1.用枚举类型替代int枚举类型和string枚举类型 public class Show { // Int枚举类型 // public static final int APPLE_FUJI = 0; // public static final int APPLE_PIPPIN = 1; // public static final int APPLE_GRANNY_SMITH = 2; public enum Apple { FUJI, PIPPIN, GRANNY_SMITH } pub

【代码优化】使用enum代替int常量

经常带代码中看见这样的代码: public static final int APP_START=1; public static final int APP_PAUSE=0; public static final int APP_STOP =2; public static final int PLAY_START=1; public static final int PLAY_PAUSE=0; public static final int PLAY_STOP =2; 这种方法叫作int枚

第30条:用enum代替int常量

在java1.5之前,表示枚举类型的常用模式是声明一组具名的int常量,每个类型成员一个常量: public static final int APPLE_FUJI = 0; public static final int APPLE_PIPPIN = 1; public static final int APPLE_GRANNY_SMITH = 2; public static final int ORANGE_NAVEL = 0; public static final int ORANGE

第六章:枚举和注解。ITEM30:用enum代替int常量。&ITEM32:用EnumSet代替位域。&ITEM33:用EnumMap代替序数索引。

1 package com.twoslow.cha6; 2 3 import java.util.HashMap; 4 import java.util.Map; 5 6 public enum Operation { 7 8 PLUS("+") { 9 @Override 10 double apply(double x, double y) { 11 return x + y; 12 } 13 },MINUS("-") { 14 @Override 15 dou

枚举Enum通过int值或文本转为对应的枚举类型

1.数值转枚举 如果枚举类型继承了数值类型,可以直接强制转换 public enum SourceType : byte { YC = 0, TS = 1, QK = 2, ZQ = 3 } //转换方式 int a=1; SourceType stype = (SourceType)a; 2.文本类型转枚举 SourceType stp = (SourceType)Enum.Parse(typeof(SourceType), "YC"); 原文地址:https://www.cnblo

Effective Java 第三版——34. 使用枚举类型替代整型常量

Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将近8年的时间,但随着Java 6,7,8,甚至9的发布,Java语言发生了深刻的变化. 在这里第一时间翻译成中文版.供大家学习分享之用. Java支持两种引用类型的特殊用途的系列:一种称为枚举类型的类和一种称为注解类型的接口. 本章讨论使用这些类型系列的最佳实践. 34. 使用枚举类型替代整型常量 枚举是其合

Android中是否推荐使用枚举Enum

一.Enum的产生 Java1.5中引入了枚举的语法,包括Enum,EnumSet,EnumMap等.其中Enum就是我们在C或C++中见过的枚举类型,但是Java中的枚举又比C或C++中的枚举更成熟和复杂.在Java中,枚举算是一种特殊的类,也就是class,因此它可以做很多类相关的事情,而不仅仅是定义几个枚举值 二.Android官方建议 Android官网不建议使用enums,占用内存多(Enums often require more than twice as much memory

枚举Enum 的常用方法

一.枚举介绍 通常定义常量方法和枚举定义常量方法区别 public class State { public static final int ON = 1; public static final Int OFF= 0; } 第一.它不是类型安全的. 你必须确保是int,其次,你还要确保它的范围是0和1. 第二.不够直观. 很多时候你打印出来的时候,你只看到 1 和0 ,但其没有看到代码的人并不知道你的企图. 抛弃你所有旧的public static final常量 枚举是一种规范它规范了参数

关于Java中枚举Enum的深入剖析

在编程语言中我们,都会接触到枚举类型,通常我们进行有穷的列举来实现一些限定.Java也不例外.Java中的枚举类型为Enum,本文将对枚举进行一些比较深入的剖析. 什么是Enum Enum是自Java 5 引入的特性,用来方便Java开发者实现枚举应用.一个简单的Enum使用如下. // ColorEnum.javapublic enum ColorEmun { RED, GREEN, YELLOW} public void setColorEnum(ColorEmun colorEnum) {