首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SnakeYAML多态性

SnakeYAML多态性
EN

Stack Overflow用户
提问于 2019-02-26 21:39:27
回答 1查看 145关注 0票数 1

我想用SnakeYAML (或其他解析器)解析Docker-compose.yml。我遇到的问题是属性既可以是字符串,也可以是更复杂的对象,比如configs,它支持“短”语法和“长”语法:

短的

代码语言:javascript
复制
version: "3.3"
services:
  redis:
    image: redis:latest
    deploy:
      replicas: 1
    configs:
      - my_config
      - my_other_config
configs:
  my_config:
    file: ./my_config.txt
  my_other_config:
    external: true

代码语言:javascript
复制
version: "3.3"
services:
  redis:
    image: redis:latest
    deploy:
      replicas: 1
    configs:
      - source: my_config
        target: /redis_config
        uid: '103'
        gid: '103'
        mode: 0440
configs:
  my_config:
    file: ./my_config.txt
  my_other_config:
    external: true

如何将其映射到SnakeYAML?目前,我已经创建了Java Beans来对不同的元素进行建模,并将配置建模为List<String>,但这显然只适用于简短的语法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-21 15:26:06

如果SnakeYaml遇到需要反序列化对象的字符串,它会查找带有字符串参数的构造函数。

因此,在本例中,只需为配置的长语法定义一个JavaBean,然后向以短语法为参数的构造函数添加一个构造函数就足够了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54886815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档