首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JSON库Jackson优雅序列化Java枚举

前言 在Java开发中我们为了避免过多魔法值,使用枚举来封装一些静态状态代码。...但是在将这些枚举意思正确而全面的返回给前端却并不是那么顺利,我们通常会使用Jackson库序列化对象为JSON,今天就来讲一个关于使用Jackson序列化枚举通用性技巧。 2....通用枚举范式 为了便于统一处理和规范统一风格,建议指定一个统一抽象接口,例如: /** * The interface Enumerator. */ public interface Enumerator...序列化枚举 如果我们直接使用Jackson对枚举进行序列化,将只能简单输出枚举String名称: @Resource private ObjectMapper objectMapper...总结 这里我们介绍了如何定制Jackson库以达到对枚举进行更加友好序列化目的。其实不单单枚举,你也可以实现其它序列化,反序列化,时间输出格式定制。这些特性留给你自己挖掘。

4.3K20

【Kotlin】常用 Kotlin ② ( 枚举 | 枚举定义函数 | 密封 )

都是 枚举 实例对象 ; enum class 枚举类型名 { 枚举常量1, 枚举常量2, ... } 代码示例 : enum class Gender { MALE,...枚举 常量名称 ; MALE true 枚举常量 Gender.MALE 是 Gender 一个 实例对象 ; 二、枚举定义函数 ---- 在枚举中 , 可以 定义函数 , 包括 普通函数...和 构造函数 ; 1、枚举定义普通函数 通过 枚举 类型常量 ( 实例对象 ) 可以 调用 枚举中定义方法 ; 为枚举定义普通函数 : 在枚举 Gender 中定义了 log 函数 ,...---- 枚举类型 是一组 子类型 闭集 ; 密封 可以 定义 枚举类型 子类型闭集 , 一个密封可以有多个子类 , 继承密封子类 必须 与 密封在相同 Kotlin 代码文件中 ; 密封适用于这种情况..., 要使用枚举特性 , 但是需要在枚举基础上保存多个特性 ; 枚举只能实现简单常量列举 , 如果需要更复杂 子类型闭集 , 则需要使用密封 ; 代码示例 : sealed class Gender

1K10
您找到你想要的搜索结果了吗?
是的
没有找到

枚举

枚举 语法 [Modifier] enum enumName{   enumContantName1   [,enumConstantName2...[;]]   //[field,method...包装把基本类型数据转换为对象 每个基本类型在java.lang包中都有一个相应包装 包装作用 提供了一系列实用方法 集合不允许存放基本数据类型数据,存放数字时,要用包装类型 XXXValue...除外)(字符串->基本类型) valueOf() 装箱和拆箱 基本类型和包装自动转换 装箱:基本类型转换为包装对象 拆箱:包装对象转换为基本类型值 Math java.lang.Math提供了常用数学运算方法和两个静态常量...toLowerCase()转小写 toUpperCase()转大写 字符串连接 方法1:使用“+” 方法2:使用Stringconcat()方法 方法名 说明 public int indexOf...之间字符串部分 public String trim() 返回一个前后不含任何空格调用字符串副本 public String[] split() 字符串分割返回数组 Date 格式化 //创建日期对象

22810

枚举

一个办法是用大写变量通过整数来定义 好处是简单,缺点是类型是int,并且仍然是变量 Enum可以把一组相关常量定义在一个class中,且class不可变,而且成员可以直接比较,这样这些相关常量就不会变化了 使用枚举...__members__.items(): print(name, '=>', member, ',', member.value) #value属性则是自动赋给成员int常量,默认从...Month.Sep , 9 #输出:Oct => Month.Oct , 10 #输出:Nov => Month.Nov , 11 #输出:Dec => Month.Dec , 12 自定义枚举...  如果需要更精确地控制枚举类型,可以从Enum派生出自定义 from enum import Enum, unique @unique #@unique装饰器可以帮助我们检查保证没有重复值...day1 = Weekday.Mon print(day1) #输出:Weekday.Mon print(day1.value) #输出:01,value属性是枚举常量

38410

Java枚举

Java 枚举是一个特殊,一般表示一组常量,比如一年 4 个季节,一个年 12 个月份,一个星期 7 天,方向有东南西北等,订单状态。...Java 枚举使用 enum 关键字来定义,各个常量使用逗号 , 来分割。 1.定义一个枚举。...ordinal()方法可以找到每个枚举常量索引,就像数组索引一样。 valueOf()方法返回指定字符串值枚举常量。...(Color.valueOf("WHITE")); } } 6.枚举成员 枚举跟普通一样可以用自己变量、方法和构造函数,构造函数只能使用 private 访问修饰符,所以外部无法调用。...枚举既可以包含具体方法,也可以包含抽象方法。 如果枚举具有抽象方法,则枚举每个实例都必须实现它。 枚举抽象方法实现,需要枚举每个对象都对其进行实现。

1K10

09 枚举

枚举概述 枚举用来管理一组相关常量集合,使用枚举可以提高程序可读性,使代码更清晰且更易于维护。...Java 5 之后可以使用枚举类型了,Java中枚举类型作用已经不仅仅是定义一组常量提高程序可读性了,还具有如下特性: Java 枚举类型是一种,是引用类型,具有了面向对象特性,可以添加方法和成员变量等...枚举声明 [public] enum 枚举名 { 枚举常量列表 } “枚举名”是该枚举名称。它首先应该是有效标识符,其次应该遵守 Java 命名规范。建议以 Enum 结尾。...枚举中成员变量和成员方法 枚举可以像一样包含成员变量和成员方法,成员变量可以是实例变量也可以是静态变量,成员方法可以是实例方法,也可以是静态方法,但不能是抽象方法。...这也说明了枚举不允许在外部创建对象。 枚举常用方法 所有枚举都继承java.lang.Enum,Enum中定义了一些枚举中常用方法: int ordinal():返回枚举常量顺序。

31310

枚举工具

链接地址:https://gitee.com/dromara/hutool/pulls/583 This is a story about pull request getFieldBy 我们在使用枚举过程中.../** * 性别枚举 */ FEMALE("男"), MALE("女"), UNKNOWN("未知"); private final String desc; } 然后对其进行使用,...我们前端传入可能是0/1/2这样数字,我们就可以通过EnumUtil#getFieldBy,来通过ordinal,也就是我们枚举序号,获取对应汉字返回 //...容我娓娓道来 我们如果遇到了这种场景: 需要根据枚举对应值执行不同逻辑:此处用一个switch case举个栗子: (jdk8开始允许枚举作为switch case条件) GenderEnum...users.get(2).getName()); Assert.assertEquals("朴实无华朱一旦", users.get(3).getName()); }); // 能写代码真开心 用到一些自定义

36310

java枚举

一、 枚举说明 枚举理解:对象只有有限个,确定。 当需要定义一组常量时,强烈建议使用枚举 如果枚举只一个对象,则可以作为单例模式实现方式。...二、如何定义枚举 ① 自定义枚举 class Season{ // 1.声明Season对象属性:private final修饰 private final String seasonName...// 使用enum关键枚举 enum Season1{ // 1.提供当前枚举对象,多个对象之间用“,”隔开,末尾对象";"结束 SPRING("春天","春暖花开"),...,枚举常用方法:(继承于 java.lang.Enum ) value() 返回所有的枚举对象构成数组 valueOf(String objName):返回枚举中对象名是 objName 对象...interface Info{ void show(); } // 使用enum关键字枚举 enum Season2 implements Info{ //1.提供当前枚举对象,

71340

Java 枚举 详解

1、枚举是什么?   Java中枚举其实是一种语法糖,在 JDK 1.5之后出现,用来表示固定且有限个对象。比如一个季节有春、夏、秋、冬四个对象;一个星期有星期一到星期日七个对象。...这些明显都是固定,且有限个。 2、枚举和普通区别   ①、使用 enum 定义枚举默认继承 java.lang.Enum ,即枚举是不能再继承别的了。...而普通一般父默认是 Object   ②、枚举构造器只能使用 private 定义,而普通还可以用 public 修饰   ③、枚举所有实例必须在枚举中显示列出(,分隔   ;结尾)...,列出实例系统会默认自动添加 public static final 修饰   ④、所有的枚举都提供了一个 values() 方法,可以用来遍历枚举值 3、怎么用枚举?    ...switch--case 表达式(JDK 1.5以后) ②、如果枚举对象只有一个,那么可以作为单例模式实现

1.2K90

Java 枚举详解

JDK提供了Enum枚举,让代码可读性更强,同时它也是类型安全,所有的枚举都被final修饰,还可以很好地实现单例模式.....enums.WeekEnum MON MON API Document API 描述 name 枚举名字 Enum.values() 返回一个当前枚举所有枚举元素 ordinal...返回当前枚举枚举索引,从0开始 getDeclaringClass 返回枚举类型 Enum.valueOf() 返回与传入名称相等枚举,可能会抛出异常 switch配合枚举编写状态机...使用抽象方法为每个枚举指定特定行为 枚举不仅可以用来表示常量,有些时候,我们也可以将一些简单计算逻辑写在枚举中。...,它提供了一种以集合方式去操作枚举途径。

92510

java枚举介绍

枚举 枚举对应英文(enumeration,简写enum)。 枚举是一组常量集合。 可以这样理解:枚举是一种特殊,里面只包含一组有限特定对象。...枚举两种实现方式 自定义实现枚举 使用enum关键字实现枚举 自定义实现枚举 不需要提供setXxx方法,因为枚举对象值通常为制度。...enum关键字实现枚举注意事项 当我们使用enum关键字开发一个枚举时,默认会继承Enum,而且是一个fianl。...如果使用无参构造器创建枚举对象,则实参列表和小括号都可以省略。 当有多个枚举对象时,使用,(逗号)间隔,最后由一个分号结尾。 枚举对象必须放在枚举行首。...//但是enum实现枚举,任然是一个,所以可以实现接口。

32530

Java 中枚举使用

枚举定义就是指将变量值一一列出来,变量值只限于列举出来范围内,使用枚举可以很方便地定义数据常量、以及我们使用。 02  【为什么需要枚举?】...我们调试时候,最初将“男”输出,结果为1。因此,我们必须在前面寻找0含义。 尤其是当我们查看其他人代码时会看不懂。而定义枚举里面进行详细说明的话就能清楚得知含义。 (2)代码更优雅。...此外,还可以为不同枚举变量调用不同处理方法(这可以通过实现枚举抽象方法来实现)。...03  【枚举定义和使用】 下面就定义一个试题类型枚举来帮助大家理解:...toString(),name():返回当前枚举变量name属性 ordinal():枚举会给所有的枚举变量一个默认次序,该次序从0开始,是根据我们定义次序来排序

1.6K20

初探Java枚举

public static com.qxy.config.ColorEnum valueOf(java.lang.String); static {}; } 从反编译文件中可以得出以下结论: 定义枚举值作为枚举属性...3.枚举特性 枚举特性,归结起来就是一句话: 除了不能继承,基本上可以将 enum 看做一个常规。...因为 enum 实际上都继承自 java.lang.Enum ,而 Java 不支持多重继承,所以 enum 不能再继承其他,当然也不能继承另一个 enum。但是枚举可以定义接口并实现。...Java 中提供了两个方便操作 enum 工具——EnumSet 和 EnumMap。...,大大加强了程序可读性、易用性和可维护性,并且在此基础之上又进行了扩展,使之可以像一样去使用,更是为Java对离散量表示上升了一个台阶。

65910

java枚举解读

枚举使用 枚举实现 JDK1.5之前需要自定义枚举 JDK 1.5 新增 enum 关键字用于定义枚举 若枚举只有一个对象, 则可以作为一种单例模式实现方式。...枚举属性 枚举对象属性不应允许被改动, 所以应该使用 private final 修饰 枚举使用 private final 修饰属性应该在构造器中为其赋值 若枚举显式定义了带参数构造器...私有化构造器,保证不能在外部创建其对象 2. 在内部创建枚举实例。声明为:public static final 3....  使用说明 使用 enum 定义枚举默认继承了 java.lang.Enum,因此不能再继承其他枚举构造器只能使用 private 权限修饰符 枚举所有实例必须在枚举中显式列出...列出实例系统会自动添加 public static final 修饰 必须在枚举第一行声明枚举对象 JDK 1.5 中可以在 switch 表达式中使用Enum定义枚举对象作为表达式

16540
领券