java有趣的现象(1)

在工作中,有时候会遇到用一些符号,字段,数字等等去代表另外的意思。比如:性别有两种,可以用0表示男,1表示女;某条数据是否有效,可以用Y表示有效,N表示无效;购物的时候订单有下单,付款,发货等状态,可以用一些简单的英语单词去代表中文的意思。
这些表示会保存在数据库中,在代码中可以这样使用,以下给出几个例子,仅供参考。。。

  • if
/**
 * one:一年级
 * two:二年级
 * three:三年级
 * four:四年级
 * five:五年级
 * six:六年级
 */
public class TestIf {

    public static void main(String[] args) {
        String grade = "one";
        if ("one".equals(grade)) {
            System.out.println("一年级");
        } else if("two".equals(grade)) {
            System.out.println("二年级");
        } else if("three".equals(grade)) {
            System.out.println("三年级");
        } else if("four".equals(grade)) {
            System.out.println("四年级");
        } else if("five".equals(grade)) {
            System.out.println("五年级");
        } else if("six".equals(grade)) {
            System.out.println("六年级");
        }
    }
}
  • enum
enum  Grade {
    ONE("one", "一年级"),
    TWO("two", "二年级"),
    THREE("three", "三年级"),
    FOUR("four", "四年级"),
    FIVE("five", "五年级"),
    SIX("six", "六年级");

    private String enName;
    private String cName;

    private Grade(String enName, String cName){
        this.enName = enName;
        this.cName = cName;
    }

    public String getEnName() {
        return enName;
    }

    public void setEnName(String enName) {
        this.enName = enName;
    }

    public String getcName() {
        return cName;
    }

    public void setcName(String cName) {
        this.cName = cName;
    }
}

public class TestEnum {
    public static void main(String[] args) {
        Grade grade = Grade.FIVE;
        switch (grade){
            case ONE:
                System.out.println(grade.getEnName() + " : " + grade.getcName());
                break;
            case TWO:
                System.out.println(grade.getEnName() + " : " + grade.getcName());
                break;
            case THREE:
                System.out.println(grade.getEnName() + " : " + grade.getcName());
                break;
            case FOUR:
                System.out.println(grade.getEnName() + " : " + grade.getcName());
                break;
            case FIVE:
                System.out.println(grade.getEnName() + " : " + grade.getcName());
                break;
            case SIX:
                System.out.println(grade.getEnName() + " : " + grade.getcName());
                break;
            default:
                System.out.println();
                break;
        }
    }
}
  • map
import java.util.HashMap;
import java.util.Map;

public class TestMap {

    public static void main(String[] args) {
        Map<String, String> grade = new HashMap<String, String>();
        grade.put("one", "一年级");
        grade.put("two", "二年级");
        grade.put("three", "三年级");
        grade.put("four", "四年级");
        grade.put("five", "五年级");
        grade.put("six", "六年级");

        System.out.println(grade.get("one"));
    }
}
public class TestMap2 {
    public static final HashMap<String, String> grade = new HashMap<String, String>();
    static {
        grade.put("one", "一年级");
        grade.put("two", "二年级");
        grade.put("three", "三年级");
        grade.put("four", "四年级");
        grade.put("five", "五年级");
        grade.put("six", "六年级");
    }

    public static void main(String[] args) {
        System.out.println(grade.get("two"));
    }
}
  • array
/**
 * 0: 新建
 * 1: 提交
 * 2: 下单
 * 3: 撤销
 * 4: 删除
 */
public class TestArray {
    public static final String[] status = {"新建", "提交", "下单", "撤销", "删除"};
    public static void main(String[] args) {
        System.out.println(status[0]);
    }
}

当这种表示在代码中多次被使用时,后面三种方法的优点是:当需要修改某一个所代表的含义,只需要修改一处(标识符常量定义的位置)就可以;然而如果用if判断的,就需要修改所有用到的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值