在YAML中表示常数的最佳方法是什么?

时间:2016-08-25 22:18:06

标签: java yaml

我编写了一个框架,我们在YAML中表示代码,并且它会在运行时转换为Java代码。

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

如果你想区分acomputeName()这些都作为字符串加载的标量,你可以尝试查看字符串中的功能(如()),但是YAML区分不同类型的方法是使用tags。在你的情况下,你可以例如使用方法:

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

根据标记(以及程序中适当的标记处理),您可以直接创建表示computeName的实例。后者是 YAML的做事方式,但是没有标签的可论证computeName()更具可读性。

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