美文网首页
Enum的一个使用场景

Enum的一个使用场景

作者: 云鲸鱼rain | 来源:发表于2018-12-18 17:40 被阅读0次

举例:

class Person {
  private Integer gender;//1:男 0:女
}

现在拿到person对象要在前端页面显示出来,但是不能显示0或者1,要显示男或者女。
嗯,可以写if else。但是若是这种“数字对应内容”的字段很多呢,每一个都写if else。那这里应该想想有没有好的解决方案了。

可以这样。

class Person {
  private Integer gender;//1:男 0:女

  //该注解是因为,
  //返回json数据的时候不会用到该方法
  @JsonIgnore
  public GenderEnum getGenderEnum() {
      return EnumUtil.getBycode(gender, GenderEnum.class);
  }
}
public class EnumUtil {

    public static <T extends CodeEnum> T getBycode(Integer code, Class<T> enumClass) {
        for (T each: enumClass.getEnumConstants()) {
            if (code.equals(each.getCode())) {
               return each;
            }
        }
        return null;
    }
}
public interface CodeEnum {
    Integer getCode();
}
@Getter
public enum GenderEnum implements CodeEnum {
    WOMAN(0,"女"),
    MAN(1,"男"),
    ;

    private Integer code;
    private String message;

    GenderEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
}

这样拿到GenderEnum之后,code或者是message都可以拿出来。

相关文章

  •  对枚举的理解

    3.如何理解 define NS_ENUM(...) CF_ENUM(__VA_ARGS__) 使用场景: 使其...

  • Enum的一个使用场景

    举例: 现在拿到person对象要在前端页面显示出来,但是不能显示0或者1,要显示男或者女。嗯,可以写if els...

  • iOS常量(const)、enum、宏(#define)的使用场

    前言:本文主要梳理iOS中如何使用常量、enum、宏,以及各自的使用场景。 重要的事情首先说:在iOS开发中请尽量...

  • JAVA ENUM 扩展使用

    enum base 常见的枚举使用场景十分简单。举个例子,写个枚举类标记不同的水果。 Advanced 1 进阶为...

  • enum的使用

    最近在写一些业务处理,实现对项目中通过模型计算产生的数据进行分类时,由于数据的类型都已经固定,突然想到enum这种...

  • [cpp deep dive] enum枚举类型

    如何声明一个枚举类型? 如何合法使用枚举类型? 不合法的例子? enum的值 ? enum的sizeof? 上代码...

  • 提高C++接口的易用性

    使用enum代替bool值 使用enum代替有限的int值,例如月份 使用类代替int,例如月、年 提供类似工厂类...

  • 使用enum class代替enum

    C++11里面提出了一个新的概念enum class。它的特点是。 新的enum的作用域不在是全局的了。 原来en...

  • kotlin基础知识二: enum和when

    一、enum class 1. 声明一个带有属性的enum class 在kotlin语法中唯一需要使用分号的地方...

  • 【Python】笔记20(枚举类)

    通过Enum类(需要从enum模块导入Enum类),定义常量而不是变量。 获得Month类型的枚举类 直接使用Mo...

网友评论

      本文标题:Enum的一个使用场景

      本文链接:https://www.haomeiwen.com/subject/mkjlkqtx.html