我是靠谱客的博主 俭朴水蜜桃,最近开发中收集的这篇文章主要介绍在Android中使用Lombok减少编码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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减少编码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部