我编写了一个框架,我们在YAML中表示代码,并且它会在运行时转换为Java代码。
在YAML中表示java函数的最佳方法是什么?
Configuration:
- name1: "a"
- name2: computeName()
在解析YAML时,我应该能够将"a"
解析为字符串并将computeName()
解析为函数。
我正在寻找最佳实践,以便用户可以直观轻松地编写YAML。
答案 0 :(得分:0)
对于YAML值a
(引号是不必要的),computeName()
都是以字符串形式加载的标量。其他标量通常以不同方式识别(true
为布尔值,123
为整数,2016-08-26
为日期)。
如果你想区分a
和computeName()
这些都作为字符串加载的标量,你可以尝试查看字符串中的功能(如()
),但是YAML区分不同类型的方法是使用tags。在你的情况下,你可以例如使用方法:
Configuration:
- name1: "a"
- name2: !func computeName
根据标记(以及程序中适当的标记处理),您可以直接创建表示computeName
的实例。后者是 YAML的做事方式,但是没有标签的可论证computeName()
更具可读性。
什么更直观在很大程度上取决于your users are used to。正确记录的简单规则(无论是使用YAML标记,还是解释程序中的标量字符串)总是必要的。