我正在使用swagger-codemen-maven-plugin(2.2.1)从YML配置生成java和打字代码类文件。我有两个问题。
如何在YML中定义枚举属性数组?
如何在YML中定义map属性枚举为key,布尔值为value?
让我知道这是可能的还是有任何解决办法?目前,我在java和typescrtipt中定义了enum类,并将其作为字符串传递。谢谢
DataInfo:
type: object
properties:
enumTest: -- works fine
type: string
enum:
- one
- two
enumTestArray: --failing to generate code
type: array
items:
type: string
enum:
- one
-two
testMap: -- works fines generate Map<String, Boolean> and { [key: string]: boolean; };
type: object
additionalProperties:
type: boolean
招摇过市枚举文件
地图物业
更新:
与第一个问题相关:定义枚举属性的数组。swagger codegen maven插件生成无效的java类文件,如下所示:看起来像生成
@XmlType(name="List<EnumTestArrayEnum>")
@XmlEnum
public enum List<EnumTestArrayEnum> {
ONE(List<String>.valueOf(""one"")), TWO(List<String>.valueOf(""two""));
private List<String> value;
List<EnumTestArrayEnum> (List<String> v) {
value = v;
}
public String value() {
return value;
}
public static List<EnumTestArrayEnum> fromValue(String v) {
return valueOf(v);
}
}
如何在YML中定义枚举属性数组?
您的enumTestArray
示例几乎正确–您只需在“-”和“2”之间留出一个空格,即可使YAML有效:
enumTestArray:
type: array
items:
type: string
enum:
- one
- two # <----
如何在YML中定义map属性枚举为key,布尔值为value?
在OpenAPI/Swagger中,映射键是任意字符串,不可能限制键的名称或格式。您可以在description
中口头记录密钥格式。
或者,由于键是已知的(仅限于某些已知的枚举),因此可以将所有可能的键定义为可选属性。不优雅,但它可能适合你。
testMap:
type: object
properties:
one:
type: boolean
two:
type: boolean
...
还建议添加对模式属性
的支持,这将允许将键名限制为正则表达式。
问题内容: 我正在寻找使用JPA映射枚举的不同方法。我特别想设置每个枚举项的整数值,并且只保存整数值。 一个简单的解决方案是将枚举注释与EnumType.ORDINAL一起使用: 但是在这种情况下,JPA映射枚举索引(0,1,2)而不是我想要的值(100,200,300)。 我发现的两个解决方案似乎并不简单… 第一个解决方案 这里提出的解决方案使用@PrePersist和@PostLoad将枚举转
问题内容: 我已经阅读了Java和C++之间的枚举差异问题?但是我还是很困惑。 我想以下返回相关的字符串: 据我所读,这应该是可能的。只是希望您对如何实现它有所了解。 问题答案: 简短答案 您需要一个构造函数,一个字段和一个吸气剂。 建设者 枚举类型可以具有构造函数,只要它们的访问级别为私有或默认(包私有)即可。除了枚举声明本身之外,您不能直接调用这些构造函数。与类相似,当定义不带参数的枚举常量时
问题内容: 我有以下枚举如何在jna中映射? 该枚举在结构上进一步引用。 阿卜杜勒·哈利克(Abdul Khaliq) 问题答案: 如果使用的是JNA,则可能要显式指定Java中的枚举值。默认情况下,Java的基本枚举类型并没有真正为您提供该功能,您必须为EnumSet添加一个构造函数(请参阅this和this)。 编码C枚举的一种简单方法是使用包装在与枚举同名的类中的公共静态最终const in
问题内容: 我想知道在Java中是否可以嵌套枚举。 在这里,我想做的是: 拥有一个由CAT和DOG组成的物种,将允许我访问可用CAT和DOG品种的子枚举。例如,我希望能够测试是否装有CAT或DOG,以及动物是否是PERSAN CAT或PITBULL狗。CAT和DOG品种必须是不同的枚举,即CatBreeds枚举和DogBreeds枚举。 这是我要使用的访问模式的示例: 种类: 物种 种狗 品种:
问题内容: 我需要预先将未实现接口的枚举映射到现有数据库,该数据库使用将该枚举存储在与所有者类相同的表中。 在这种情况下应如何处理映射?持久化到数据库不会改变,因为实现该接口的所有枚举都将具有不同的值,但是我不确定应如何从数据库中检索对象(我是否需要自定义映射器,它将尝试实例化一个使用指定的enum类进行枚举吗?Hibernate本身是否支持此功能?)。 问题答案: 可以创建一个自定义(例如thi