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也不再那么啰嗦了。

上一篇下一篇

猜你喜欢

热点阅读