我正在编写一个框架,我们在其中用 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/