java snakeyaml_java – 使用SnakeYAML的嵌套构造
在与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的嵌套构造相关推荐
- java snakeyaml_JAVA使用SnakeYAML解析与序列化YAML
1.概述 本文,我们将学习如何使用SnakeYAML库将 YAML文档转换为Java对象,以及JAVA对象如何序列化为YAML文档. 2.项目设置 要在项目中使用SnakeYAML,需要添加Maven ...
- Java安全之SnakeYaml反序列化分析
Java安全之SnakeYaml反序列化分析 0x00 前言 偶然间看到SnakeYaml的资料感觉挺有意思,发现SnakeYaml也存在反序列化利用的问题.借此来分析一波. 0x01 SnakeYa ...
- java错放了构造_在catch代码附近的Java代码中“错放了构造”(“misplaced construct(s)” in Java code near a catch)...
在catch代码附近的Java代码中"错放了构造"("misplaced construct(s)" in Java code near a catch) 我无 ...
- Java中普通代码块,构造代码块,静态代码块区别
Java中普通代码块,构造代码块,静态代码块区别及代码 示例 //执行顺序:(优先级从高到低.)静态代码块>mian方法 >构造代码块>构造方法. 其中静态代码块只执行一次.构造代码 ...
- $emit传递多个参数_10年架构师深解java核心技术:方法参数+对象构造,确定不学?...
方法参数 首先回顾一下在程序设计语言中有关参数传递给方法(或函数)的一些专业术语.值调用(call by value)表示方法接收的是调用者提供的值.而引用调用(call by reference)表 ...
- 为什么Java方法里面不能再嵌套方法?
为什么Java方法里面不能再嵌套方法? 直接原因: 这是Java基本语法定义的,方法中不可以再次声明方法,只能调用其他的方法. 个人理解: 1.方法栈是需要一个载体的,这个载体就是Class,如果一个 ...
- Java面向对象基础学习笔记(构造、重载、继承、多态、抽象类、接口、模块)
Java面向对象编程包含哪些内容? 怎么理解面向对象编程? 现实生活中,我们定义了"人"的抽象概念,这就是类class,生活中的每一个具体的人就是实例instance. class ...
- java中普通代码块,构造代码块,静态代码块的区别及代码示例
本文转自:http://www.cnblogs.com/sophine/p/3531282.html 执行顺序:(优先级从高到低)静态代码块>main方法>构造代码块>构造方法. 其 ...
- 关于java中普通代码块、构造代码块与静态代码块
1.普通代码块 public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现"{普通代码的执行语句}"的就称为 ...
- java 抽象类 模板_Java抽象类的构造模板模式用法示例
搜索热词 本文实例讲述了Java抽象类的构造模板模式用法.分享给大家供大家参考,具体如下: 一 点睛 模板模式的一些简单规则. 抽象父类可以只定义需要使用的某些方法,而不能实现的部分抽象成抽象方法,留 ...
最新文章
- Direct I/O
- linux 批量下载图片,Python + Excel 实现图片批量下载
- 奶牛健美操(codevs 3279)
- 作者:李大中(1976-),男,中国联合网络通信集团有限公司信息化事业部数据中心工程师...
- python中random库
- ASP.net网页导出Excel中文乱码解决方案
- layui 表单验证案例
- 浏览器兼容性测试工具
- Implementing Infinite Scroll Into a React Component
- java菱形_Java 之 菱形
- 高中数学培训:高一数学复习技巧方法
- OI生涯回忆录(Part6:至高一NOIP考试结束)
- Python 常见面试题
- peerDependencies WARNING问题剖析
- 手机内置传感器和定位技术
- 文件标识位的区别r、r+、w、w+等
- Python+pymupdf处理PDF文档案例6则
- 为什么7805前要加达林顿管【转自阿莫论坛】
- MS Sql Server查询数据库文件大小和剩余空间,数据库日志压缩
- Windows 11 插上U盘之后鼠标移动非常卡
热门文章
- 通信接口——RS-232与RS-422及RS-485三者之间的特性与区别
- python-定义类的属性
- 油猴插件/脚本还不会使用?看这篇文章就够了, 各种实用的插件/脚本使用技巧
- SQL语句多表连接查询语法
- matlab符号运算ppt,第5 章Matlab符号运算.ppt
- python风格迁移_Python简单实现图像风格迁移
- Linux 之查看 OpenCV 版本并卸载重装
- 单片机消抖c语言程序,单片机中按键消抖程序
- 毕业设计系列1--基于ESP8266设计智能插座--材料清单
- CISP 和 NISP差别一览