Tôi đang xem xét việc sử dụng các cấu trúc tùy chỉnh với SnakeYAML và không chắc chắn cách triển khai lồng nhau. Tôi đang sử dụng this example làm tài liệu tham khảo.Xây dựng lồng nhau với SnakeYAML
Trong ví dụ liên kết, các YAML liên quan và Xây dựng là,
- !circle
center: {x: 73, y: 129}
radius: 7
private class ConstructCircle extends AbstractConstruct {
@SuppressWarnings("unchecked")
public Object construct(Node node) {
MappingNode mnode = (MappingNode) node;
Map<Object, Object> values = constructMapping(mnode);
Circle circle = new Circle((Map<String, Integer>) values.get("center"), (Integer) values.get("radius"));
return circle;
}
}
Bây giờ, chúng ta hãy thay đổi YAML đến,
- !circle
center: !point
x: 73
y: 129
radius: 7
Tôi muốn sử dụng một số khác AbstractConstruct
để phân tích cú pháp đối tượng !point
đó nhưng thực hiện trong phạm vi ConstructCircle
ngữ cảnh. Sự hiểu biết của tôi về mối quan hệ Construct/Node
là khá run rẩy và tôi đang thua lỗ về cách sử dụng một hàm tạo tùy chỉnh trong một hàm tạo tùy chỉnh. Bất kỳ suy nghĩ hoặc tài nguyên nào?