概述
Lombok的介绍,可以看官网的一段视频 https://projectlombok.org/。
说得简单一点,该框架可以用来精简java代码,提升开发效率,利用注解在编译期生成getter/setter/toString()/hash/equals/construct等等方法。在web中用得比较多,但是在android上估计用得少之又少。个人认为在没有很好的评估该框架的兼容性前,在实际生成项目中最好不要使用。当然,在自己用来写demo的时候倒可以用来一试,怎一个爽字了得。
关于该框架,官方的android的接入文档地址在:https://projectlombok.org/setup/android.html,当然stackoverflow上也有接入相关的信息:http://stackoverflow.com/questions/21344692/how-to-set-up-compile-library-in-android-studio-lombok,甚至还有人问有没有什么原因不要在android中使用lombok:http://stackoverflow.com/questions/34366010/are-there-reasons-not-to-use-lombok-with-android-studio?noredirect=1&lq=1,使用过程中遇到任何问题可以去github上看看有没有相应的issue:https://github.com/rzwitserloot/lombok
不管别人怎么说,总得自己试一试才知道有多爽,首先安装一个插件。具体安装方法就直接贴官方的了:
- Go to File > Settings > Plugins
- Click on Browse repositories…
- Search for Lombok Plugin
- Click on Install plugin
- Restart Android Studio
然后在项目中以provided的形式依赖该库
provided "org.projectlombok:lombok:1.16.10"
我们先写一个java bean,就以典型的Person类来举例。
public class Person {
private String name;
private int age;
private String address;
}
如果我们要生成getter和setter方法,会使用control+enter选择getter and setter方法进行自动生成,当然还有其他方法,比如toString等等,应该没有人蠢到一个一个方法去手写吧???
现在我们看看使用了Lombok框架后我们的Person类变成了什么样子,不做任何操作前,看一下类结构:
然后在项目根目录下新建一个lombok.config配置文件,加入两行配置
lombok.anyConstructor.suppressConstructorProperties = true
lombok.addGeneratedAnnotation = false
两个配置的作用是禁用掉一些在android上不存在的类,这些类在标准java中才存在。
现在我们在Person类上加入注解@Data,代码如下:
@Data
public class Person {
private String name;
private int age;
private String address;
}
再看一下类结构
多了好多getter和setter方法,以及toString、equals等方法。
再加两个注解用于生成构造函数
@NoArgsConstructor
@AllArgsConstructor
看下类结构是否生成了空的构造函数和全参数的构造函数
代码中使用一下,如果能编译通过并且能成功运行,则没有什么问题
Person p = new Person();
p.setName("区长");
p.setAge(100);
p.setAddress("杭州");
Log.e("TAG", p + "");
Person p1 = new Person("区长",123,"西湖区");
Log.e("TAG", p1 + "");
运行结果
如果你接触过脚本语言,肯定知道脚本语言中支持var来声明变量,具体类型会自动推测,同样,使用了Lombok后也是支持的,我们可以在代码中直接使用关键字val,至于为什么不是var,大概是Lombok认为在java中,后面可能会使用var关键字。具体例子如下,声明一个list泛型,存入之前的两个person对象,并打印输出:
val list=new ArrayList<Person>();
list.add(p);
list.add(p1);
Log.e("TAG", list + "");
效果如下:
作为一个程序员,你一定写过很多判空的代码,Lombok中有一个@NonNull注解,注意不是android support包下的注解,可以生成一段判空的代码,如果值为空,会抛出空指针异常。如下:
public boolean isEmpty(@NonNull String value) {
return true;
}
反编译后可以看到生成的代码如下:
public boolean isEmpty(@NonNull String value) {
if(value == null) {
throw new NullPointerException("value");
} else {
return true;
}
}
Lombok中的注解不止上面介绍的几个,其他注解自己去挖掘吧,可以看到,使用了Lombok后可以给我们带来一定的方便,还是可以一试的~~
最后
以上就是俭朴水蜜桃为你收集整理的在Android中使用Lombok减少编码的全部内容,希望文章能够帮你解决在Android中使用Lombok减少编码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复