为什么你不应该使用Lombok
Comments
tags:技术, Java
先科普下Lombok,一个第三方的Java字节修改库,用来帮助你自动生成一些“冗余”代码的工具。(在此请允许我吐槽下这个官方网站浓浓的山寨VB程序页面) Java,作为流行的编程语言。最受人诟病的一个缺点,就是“罗嗦”。相比动态语言,变量要先定义,类型要先定义,每个类要写很多的get/set/toString/hashCode等等方法。为了避免写这些“罗嗦”的方法,好多程序员一直在到处寻找一个能够使他们摆脱这些烦的事情的工具,比如今天我要谈论的这个Lombok,就被认为是一个处理这方面的好工具。 然而我却并不这么认为。 先来了解下Lombok的工作原理吧。由于Java的官方版本没有提供这种“便利”的工具。而类似Lombok的工具都是使用了从Java 6和JSR 269的Annotation Processing技术。 但是这个新特性的本意是只能用来根据Annotation生成新的代码(或者文档),而不是用来修改现有的代码的。Lombok是怎么做的呢?根据官方的文档: 使用非公开的API,在知道在javac编译代码时,annotation processor的实例一定是JavacAnnotationProcessor(接口AnnotationProcessor的内部实现),直接使用强制类型转换cast。再从JavacAnnotationProcessor的方法里面拿到抽象语法树(AST)做修改。 接着看看大家认为的最大好处: 省代码,省很多的代码…