配置

enum.use.ordinal

用于设置使用@see枚举类型时的默认使用ordinal作为取值

优先级低于enum.use.customenum.use.by.type

所以要使用enum.use.ordinal需要先在推荐配置中取消enum.use.by.type

假定有如下枚举类

public enum UserType {
    //管理员
    ADMIN(1, "管理员"),

    //成员
    MEMBER(2, "成员"),

    //游客
    GUEST(3, "游客");

    private int code;
    private String desc;

    public int getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }

    UserType(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }
}

对于如下字段

/**
* 用户类型
*
* @see UserType
*/
private int type;

默认情况

  • 由于UserType中不存在字段type, 默认情况下这里的@see UserType会被忽略掉

增加配置

  • 做如下配置,设置@see UserType时默认使用ordinal字段作为取值
enum.use.ordinal[com.itangcent.common.constant.UserType]=true
  • 则上述注释将等价于
/**
* 用户类型
* @see UserType#ordinal()
*/
private int type;
  • 导出API结果为:
名称 类型 是否必须 默认值 备注 其他信息
type integer 非必须 用户类型 枚举: 0,1,2
枚举备注: 0 :管理员 1 :成员 2 :游客
mock: @pick([0,1,2])

统一处理

  • 特殊的, 声明如下接口:
package com.itangcent.common.constant;

public interface BaseEnum {
}
  • 改造UserType,使其继承BaseEnum
public enum UserType implements BaseEnum {
    ...
}
  • 则可做如下配置,将所有继承BaseEnum的类默认使用ordinal作为取值
enum.use.ordinal[groovy:it.isExtend("com.itangcent.common.constant.BaseEnum")]=true

整个项目所有@see 枚举类都默认使用ordinal作为取值

enum.use.ordinal=true