在祖国65岁生日之际,道一声生日快乐,也祝大家国庆节happy。当大家选择和拥塞的公路较劲的时候,我选择了宅在家里用自己微薄的文字为Java中一个很方便的工具Lombok平反。
忘记了什么时候看到Lombok这个东西,开始对它的感觉是读起来很霸气,有没有哈哈。
渐渐的发现,这个东西还真是TMD方便啊,可以在Java世界里面一直默默无闻不知道是什么原因。今天就给大家分享一下Lombok,让大家感受一下这厮到底有多方便,到底能让你的代码多精简。
先上一个叫做val 的东东, 我们定义一个常量是不是都会这样写:
import java.util.ArrayList; import java.util.HashMap; import java.util.Map; public class ValExample { public String example() { final ArrayList<String> example = new ArrayList<String>(); example.add("Hello, World!"); final String foo = example.get(0); return foo.toLowerCase(); } public void example2() { final HashMap<Integer, String> map = new HashMap<Integer, String>(); map.put(0, "zero"); map.put(5, "five"); for (final Map.Entry<Integer, String> entry : map.entrySet()) { System.out.printf("%d: %s\n", entry.getKey(), entry.getValue()); } } }
但是, 自从有了Lombok, final + 类型 这种复杂的定义方式不再需要了。
import java.util.ArrayList; import java.util.HashMap; import lombok.val; public class ValExample { public String example() { val example = new ArrayList<String>(); example.add("Hello, World!"); val foo = example.get(0); return foo.toLowerCase(); } public void example2() { val map = new HashMap<Integer, String>(); map.put(0, "zero"); map.put(5, "five"); for (val entry : map.entrySet()) { System.out.printf("%d: %s\n", entry.getKey(), entry.getValue()); } } }
再来一个annotation 让大家尝尝鲜,来个@NotNull,看到他的介绍果然惊艳,叫“爱上NPE”,让我们一起见证一下如何爱上NPE:
对比下面两端代码,你就会很明显的感觉到它的益处:
import lombok.NonNull; public class NonNullExample extends Something { private String name; public NonNullExample(@NonNull Person person) { super("Hello"); this.name = person.getName(); } }
import lombok.NonNull; public class NonNullExample extends Something { private String name; public NonNullExample(Person person) { super("Hello"); if (person == null) { throw new NullPointerException("person"); } this.name = person.getName(); } }
估计看过guava代码的亲们应该都看到过这种annotation的。其实NotNull包括了两种Exception,有一个可选的annotation参数,通过exceptionType,可以决定当前位置是用IllegalArgumentException还是NPE,当然默认值就是NPE了。在Lombok中有一个好处就是如果使用了如@Data这样的Lombok annotation,也会默认出发@NotNull 的, 同时如果把@NotNull加到了原始类型上,你将收获一个warning。
只有处理NPE的怎么够,接下来我们陆续学习更多的Lombok的好东西:
如果想关注Lombok 更多内容可以去官方网页细细品味:http://www.projectlombok.org/
相关推荐
在Java性能优化中,以下几个核心知识点不容忽视: 1. **垃圾回收(Garbage Collection)**:Java的自动内存管理机制,虽然简化了编程,但其工作方式可能导致性能瓶颈。理解不同GC算法如Serial、Parallel、CMS、G1和...
3. **软件/插件**: 项目可能包含了各种开发工具或插件,如IDEA (IntelliJ IDEA)、Maven或Gradle(构建工具),Eclipse(IDE),以及Lombok(简化对象属性生成)等,这些工具极大提高了开发效率。 4. **在线小说阅读...
扒站java源码 最新消息,SpringBoot博客已经开源, 关于项目 该博客是基于SSM实现的一个个人博客系统,适合初学SSM和个人博客制作的同学学习。 主要涉及技术包括的包括 Maven、Spring、SpringMVC、MyBatis、Redis、...
扒站java源码 最新消息,SpringBoot博客已经开源, 关于项目 该博客是基于SSM实现的一个个人博客系统,适合初学SSM和个人博客制作的同学学习。 主要涉及技术包括的包括 Maven、Spring、SpringMVC、MyBatis、Redis、...
虽然XDoclet在当时非常流行,但随着Java的发展,它的一些功能已经被现代工具如Maven、Gradle和Lombok所取代。这些工具提供了更强大、更灵活的代码生成和管理方式。然而,对于了解历史和研究早期Java开发实践的人来说...
扒站java源码 关于项目 该博客是基于SSM实现的一个个人博客系统,适合初学SSM和个人博客制作的同学学习。 主要涉及技术包括的包括 Maven、Spring、SpringMVC、MyBatis、Redis、JSP等。 前端采用Layui框架和扒了一个...
元编程则更进一步,它允许在编译时或运行时生成和修改代码,例如Lombok库简化了Java的getter和setter生成。 6. **低级别编程**:虽然Java是一种高级语言,但通过JNI(Java Native Interface)可以与C/C++等原生代码...
扒站java源码 关于项目 该博客是基于SSM实现的一个个人博客系统,适合初学SSM和个人博客制作的同学学习。 主要涉及技术包括的包括 Maven、Spring、SpringMVC、MyBatis、Redis、JSP等。 前端采用Layui框架和扒了一个...
Lombok是一个Java库,可以通过注解的方式简化实体类、DTO(Data Transfer Object)、DAO(Data Access Object)等代码的编写。当开发者在集成开发环境(IDEA)中遇到lombok包不存在的错误时,通常是因为没有安装lombok库...
在IT行业中,集成开发...文件名为`idea-settings-master`可能是一个包含了上述所有配置的导出文件,可以被导入到其他IDEA实例,快速复用这些精心调整的设置。理解并运用这些设置,将使你在Java开发之旅更加得心应手。
但它的设计理念——通过元数据自动化生成配置文件,对后来的框架和工具(如Lombok、Maven插件等)产生了深远的影响。 总结来说,XDoclet-plugins-1.0.3是XDoclet工具的一个重要版本,它包含了一系列针对不同框架的...
扒站java源码 最新消息,SpringBoot博客已经开源, 关于项目 该博客是基于SSM实现的一个个人博客系统,适合初学SSM和个人博客制作的同学学习。 主要涉及技术包括的包括 Maven、Spring、SpringMVC、MyBatis、Redis、...
扒站java源码 关于项目 该博客是基于SSM实现的一个个人博客系统,适合初学SSM和个人博客制作的同学学习。 主要涉及技术包括的包括 Maven、Spring、SpringMVC、MyBatis、Redis、JSP等。 前端采用Layui框架和扒了一个...
1. **插件市场**:访问“File” -> “Settings” -> “Plugins”,浏览并安装增强IDEA功能的各种插件,如Lombok、Gitflow等。 2. **插件设置**:安装后,可在“Settings” -> “Plugins”中配置插件参数,根据需要...
5. **开发辅助插件**:例如Lombok插件,简化Java Bean的编码;Live Templates,自定义代码片段快速输入;以及Code Style配置插件,统一团队的编码规范。 6. **调试和测试插件**:如JUnit、TestNG插件,增强测试功能...
Eclipse和IntelliJ IDEA是两个备受推崇的Java开发工具。虽然Eclipse拥有广泛的社区支持和丰富的插件库,但IntelliJ IDEA以其强大的智能代码提示、高效的项目管理和内置版本控制等功能,吸引了越来越多的开发者。本...