easy-yapi
easy-yapi copied to clipboard
[Bug] enum.use.custom 没有生效
trafficstars
easy api config:
enum.use.custom[groovy:it.isExtend("com.zbycorp.fenghuo.domain.common.constants.BaseEnum")]=code
基类
public interface BaseEnum {
default String enumClass() {
return this.getClass().getName();
}
/**
* 枚举一般作为value的字段
*/
Object getCode();
}
实现类
@Getter
public enum StrategyTypeEnum implements BaseEnum {
CAMPAIGN_BUDGET("广告活动分时预算"),
TARGET_BID("分时竞价")
;
private String desc;
StrategyTypeEnum(String desc) {
this.desc = desc;
}
@Override
public String getCode() {
return this.name();
}
}
使用地方
/**
* @see StrategyTypeEnum
*/
@ApiModelProperty("策略类型")
private String strategyType;
结果 没有输出任何值, 去掉配置之后 就可以输出了, 不知道为啥, 也没报错
😂,目前还没有办法解析方法, 虽然你这里的例子并不复杂。
@Override
public String getCode() {
return this.name();
}
但如果你这里getCode返回的总是name(),那可以试试直接配:
enum.use.custom[groovy:it.isExtend("com.zbycorp.fenghuo.domain.common.constants.BaseEnum")]=name()
只是部分枚举用到了name() , 还是希望能支持下方法撒 😄
有尝试过实现方法推断,但是代码逻辑太复杂了可能导致卡死,目前还没有找到好的实现方案。 https://github.com/tangcent/easy-yapi/blob/master/idea-plugin/src/main/kotlin/com/itangcent/idea/plugin/api/DefaultMethodInferHelper.kt
只是部分枚举用到了name()
其他的大概是怎么样的?
就是部分枚举 没有写任何属性, 直接继承了 BaseEnum , 重写了 getCode 直接用的 name() (⊙o⊙)…