在与SnakeYaml做了一些项目后,好吧.我想我终于理解了你的问题.嵌套由SnakeYaml自动处理.你不必担心这一点.您需要做的就是创建另一个Construct for!point,并将其添加到自定义构造函数类中的映射yamlConstructors.这将在任何地方启用!point标记.

点构造可能看起来像这样:

class PointConstruct extends AbstractConstruct{

public Object construct(Node node){

String line = (String)constructScalar((ScalarNode)node);

Pattern pointPattern = Pattern.compile("\\((\\d+),(\\d+\\)");

Matcher m = pointPattern.matcher(line);

if(m.find())

return new Point(m.group(1),m.group(2));

throw new RuntimeException("Could not parse a point");

}

}

您的Yaml文件将如下所示:

!circle

center: !point (73,179)

radius: 7

我认为这个输出看起来好多了.如果您向yaml添加ImplicitResolver:

yaml.addImplicitResolver(new Tag("!point"), Pattern.compile("\\((\\d+),(\\d+\\)"),"(");

然后yaml看起来像这样.

!circle

center: (73,179)

radius: 7

或者你可以放弃编写一个新的Construct,然后让Point跟随bean模式并使用类似的东西.

!circle

center !!package.goes.here.Point

x: 73

y: 179

radius: 7

无论如何希望这个答案比我上一个答案更明确.

java snakeyaml_java – 使用SnakeYAML的嵌套构造相关推荐

  1. java snakeyaml_JAVA使用SnakeYAML解析与序列化YAML

    1.概述 本文,我们将学习如何使用SnakeYAML库将 YAML文档转换为Java对象,以及JAVA对象如何序列化为YAML文档. 2.项目设置 要在项目中使用SnakeYAML,需要添加Maven ...

  2. Java安全之SnakeYaml反序列化分析

    Java安全之SnakeYaml反序列化分析 0x00 前言 偶然间看到SnakeYaml的资料感觉挺有意思,发现SnakeYaml也存在反序列化利用的问题.借此来分析一波. 0x01 SnakeYa ...

  3. java错放了构造_在catch代码附近的Java代码中“错放了构造”(“misplaced construct(s)” in Java code near a catch)...

    在catch代码附近的Java代码中"错放了构造"("misplaced construct(s)" in Java code near a catch) 我无 ...

  4. Java中普通代码块,构造代码块,静态代码块区别

    Java中普通代码块,构造代码块,静态代码块区别及代码 示例 //执行顺序:(优先级从高到低.)静态代码块>mian方法 >构造代码块>构造方法. 其中静态代码块只执行一次.构造代码 ...

  5. $emit传递多个参数_10年架构师深解java核心技术:方法参数+对象构造,确定不学?...

    方法参数 首先回顾一下在程序设计语言中有关参数传递给方法(或函数)的一些专业术语.值调用(call by value)表示方法接收的是调用者提供的值.而引用调用(call by reference)表 ...

  6. 为什么Java方法里面不能再嵌套方法?

    为什么Java方法里面不能再嵌套方法? 直接原因: 这是Java基本语法定义的,方法中不可以再次声明方法,只能调用其他的方法. 个人理解: 1.方法栈是需要一个载体的,这个载体就是Class,如果一个 ...

  7. Java面向对象基础学习笔记(构造、重载、继承、多态、抽象类、接口、模块)

    Java面向对象编程包含哪些内容? 怎么理解面向对象编程? 现实生活中,我们定义了"人"的抽象概念,这就是类class,生活中的每一个具体的人就是实例instance. class ...

  8. java中普通代码块,构造代码块,静态代码块的区别及代码示例

    本文转自:http://www.cnblogs.com/sophine/p/3531282.html 执行顺序:(优先级从高到低)静态代码块>main方法>构造代码块>构造方法. 其 ...

  9. 关于java中普通代码块、构造代码块与静态代码块

    1.普通代码块 public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现"{普通代码的执行语句}"的就称为 ...

  10. java 抽象类 模板_Java抽象类的构造模板模式用法示例

    搜索热词 本文实例讲述了Java抽象类的构造模板模式用法.分享给大家供大家参考,具体如下: 一 点睛 模板模式的一些简单规则. 抽象父类可以只定义需要使用的某些方法,而不能实现的部分抽象成抽象方法,留 ...

最新文章

  1. Direct I/O
  2. linux 批量下载图片,Python + Excel 实现图片批量下载
  3. 奶牛健美操(codevs 3279)
  4. 作者:李大中(1976-),男,中国联合网络通信集团有限公司信息化事业部数据中心工程师...
  5. python中random库
  6. ASP.net网页导出Excel中文乱码解决方案
  7. layui 表单验证案例
  8. 浏览器兼容性测试工具
  9. Implementing Infinite Scroll Into a React Component
  10. java菱形_Java 之 菱形
  11. 高中数学培训:高一数学复习技巧方法
  12. OI生涯回忆录(Part6:至高一NOIP考试结束)
  13. Python 常见面试题
  14. peerDependencies WARNING问题剖析
  15. 手机内置传感器和定位技术
  16. 文件标识位的区别r、r+、w、w+等
  17. Python+pymupdf处理PDF文档案例6则
  18. 为什么7805前要加达林顿管【转自阿莫论坛】
  19. MS Sql Server查询数据库文件大小和剩余空间,数据库日志压缩
  20. Windows 11 插上U盘之后鼠标移动非常卡

热门文章

  1. 通信接口——RS-232与RS-422及RS-485三者之间的特性与区别
  2. python-定义类的属性
  3. 油猴插件/脚本还不会使用?看这篇文章就够了, 各种实用的插件/脚本使用技巧
  4. SQL语句多表连接查询语法
  5. matlab符号运算ppt,第5 章Matlab符号运算.ppt
  6. python风格迁移_Python简单实现图像风格迁移
  7. Linux 之查看 OpenCV 版本并卸载重装
  8. 单片机消抖c语言程序,单片机中按键消抖程序
  9. 毕业设计系列1--基于ESP8266设计智能插座--材料清单
  10. CISP 和 NISP差别一览