java - 在 YAML 中表示常量的最佳方式是什么?

标签 java yaml

我正在编写一个框架,我们在其中用 YAML 表示代码,然后它会在运行时转换为 Java 代码。

在 YAML 中表示 java 函数的最佳方式是什么?

Configuration:
  - name1: "a"
  - name2: computeName()

在解析 YAML 时,我应该能够将 "a" 解析为字符串,将 computeName() 解析为函数。

我正在寻找最佳实践,以便用户可以直观且轻松地编写 YAML。

最佳答案

对于 YAML 值 a (引号是不必要的)和 computeName()都是作为字符串加载的标量。其他标量通常以不同方式识别(true 为 boolean 值,123 为整数,2016-08-26 为日期)。

如果你想区分像a这样的标量和 computeName()都是作为字符串加载的,您可以尝试查看字符串中的特征(如 () ),但是区分不同类型的 YAML 方法是使用 tags .在你的情况下你可以例如使用:

Configuration:
  - name1: "a"
  - name2: !func computeName

基于标签(以及程序中适当的标签处理),您可以直接创建一个表示 computeName 的实例.后者是 YAML 做事方式,但有争议computeName()没有标签更具可读性。

什么更直观很大程度上取决于什么your users are used to .正确记录的简单规则(无论是使用 YAML 标记,还是在程序中解释标量字符串)始终是必要的。

关于java - 在 YAML 中表示常量的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39155598/

相关文章:

python-3.x - 如何使用 ruamel.yaml 从 YAML 文件加载 Python lambda 表达式?

java - HashMap 有什么问题?

Mongodb yaml `selector` 与模板 `labels` 不匹配

r - 从 R 制作复杂的 yaml

java - 通过构造函数的依赖注入(inject)不适用于 EJB bean

java - 如何将 application.yml 中的类属性与具有不同类名的 java 类相匹配?

java - 如何在java中编辑.yml文件?

java - 使用 Java 6,在 Linux 上如何确保使用 ipv4 套接字?

java - 有没有什么工具可以轻松制作复杂的GUI,并且支持java来编码逻辑

使用 strictfp 修饰符声明的 Java 类无法通过 Modifier.isStrict(int) 进行测试