json - 当实例化一个用snakeYAML 解析的节点时,你可以将一个节点的祖先的引用传递给它的构造函数而不使用锚点/别名吗?
问题描述
给定下面的类,其中 Bar 的构造函数期望引用它在 YAML 树中的祖先之一——具体来说,是对 Foo 类最近的祖先的引用:
是否可以使用snakeYAML(或任何其他与Java 兼容的解析器)实例化这些类?如果是这样,怎么做?
class Foo() {
private String firstName;
private String lastName;
private List<Bar> bars;
Foo() { // do something... }
// appropriate getters/setters here...
}
class Bar() {
private String label;
private String color;
private List<Bar> bars;
private List<Foo> foos;
Bar(Foo nearestAncestorFoo) { // nearestAncestorFoo should be a reference to the closest ancestor whose type is foo }
// appropriate getters/setters here...
}
一个示例 YAML 文件:
foos:
- firstName: Fred
lastName: Jones
bars:
- label: hello world
color: green
bars:
- label: globglob
color: blue
- label: mr. hankey
color: brown
foos:
- firstName: Dave
lastName : Davis
bars:
- label: Dave's only bar
color: beige
- name: bambam
color: grey
解决方案
推荐阅读
- android - 在 Android 中编辑活动时禁用滚动
- c - 用 GDB 检查 C 指针
- swift - 你如何以这种格式显示日期?“2018 年 7 月 18 日上午 10:02”
- typescript - 为什么一个类的变量可以指向具有相同内容的不同类?
- javascript - 无法将 ajax:error 处理程序附加到表单 ID
- c++ - 为什么 Qt QString 的 replace 方法会改变 QString?
- php - PHP preg_match_all 谜语
- rest - Zoho Projects API - 身份验证令牌
- scala - 从 S3 读取压缩的 CSV 文件
- ios - 在 Swift 中自定义栏按钮项