Java好用的工具之lombok
2019-04-19 本文已影响0人
有财君
1. 用lombok前
比如说我现在有一个简单的需求,需要编写一个类,那么规范的Java代码应该是这样写的:
package com.example.practice;
public class Account {
private String accountNo;
private int balance;
public Account(String accountNo, int balance) {
this.accountNo = accountNo;
this.balance = balance;
}
public String getAccountNo() {
return accountNo;
}
public void setAccountNo(String accountNo) {
this.accountNo = accountNo;
}
public int getBalance() {
return balance;
}
public void setBalance(int balance) {
this.balance = balance;
}
}
//省略了hashCode,equals和toString方法。
其实这个类无非是模拟了真实世界的一种存在,这是面向对象的基本要求,但是那些getter,setter等等方法看起来实在是太不优雅了,更不用说还有其他的需要Override的方法。
实际上只有这两个东西需要关注:
private String accountNo;
private int balance;
2. 当我遇到了kotlin
Kotlin语言虽然很新,但是毕竟有Google站台,风头也是一时无两,而且已经开始成为Google力推的Android开发语言。
那么实现上面的类,Kotlin是怎么做的呢?
package com.example.practice
class AccountK {
var accontNo: String = "quan"
var balance: Int = 1000
}
只要这样就可以了,没有什么getter和setter。
用的时候类的属性是可以直接访问的:
package com.example.practice
fun main() {
val account = AccountK()
account.accontNo = "12345467"
account.balance = 2000
println(account.accontNo)
}
这样看起来比Java优雅多了,毕竟我学习Java的时候,很多书都会讲面向对象就是对真实世界的模拟,那么为什么一辆车我不能直接看到它的轮胎是黑色还是白色(属性),而一定要通过一个望远镜(getter)看呢?
3. 好用的lombok
lombok可以认为是一个增强工具,用了以后可以放心大胆的把代码改造成这样:
package com.example.practice;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
@AllArgsConstructor
@Setter
@Getter
public class Account {
private String accountNo;
private int balance;
}
没有构造器,没有getter和setter,所有的一切上面的三个注解都帮我解决了,代码看起来一下子优雅了好多。
当然lombok的作用也不止于此,它还能通过注解引入Slf4j,ToString,实现类的Builder方法等等。
有这个工具,让我觉得Java也不再那么啰嗦了。