这阵子在研究Kotlin,它提供了类似DSL的语法能力,一些在Java中写起来冗长的方法,在Kotlin中则可以方便的使用,同时具有很高的可读性。
举个例子,如果我们要构造这样的xml:
1 | xml复制代码<?xml version="1.0" encoding="UTF-8"?> |
如果使用Java来做的话,是这样的:
1 | java复制代码import javax.xml.parsers.DocumentBuilderFactory; |
简单的例子看起来还算清晰,但如果层级变多了可读性会迅速下降。
接下来给大伙整个活,我用Kotlin写一个DSL,效果是这样的:
1 | kotlin复制代码fun main() { |
可以看出代码和xml的结构是一一对应的,这样我们就非常方便地构造了一个xml实例。
以上效果的全部实现代码包括import在内仅53行,并且支持格式化输出:
1 | kotlin复制代码import org.w3c.dom.Document |
还有用poi构造Excel的也可以这样玩,如果我们要构造一个表格:
姓名 | 性别 |
---|---|
张三 | 男 |
那么我们就可以这样写:
1 | kotlin复制代码fun main() { |
实现代码比上面的xml还少,还支持合并单元格:
1 | kotlin复制代码import org.apache.poi.hssf.usermodel.HSSFWorkbook |
有兴趣的同学可以玩下,当然这些只是实现了核心功能,如果要完善的实现可以根据情况自行修改,有时间的话我也打算就以上的内容放到Github分享出来。
本文转载自: 掘金