java 1618错误_Java_SE-初探Lombok并拒绝它

前言

在一个GitHub项目发现它使用了Lombok这个工具。没见过所以了解一下, 但是发现还是不太好用, 于是摒弃之。但好歹记录一下。

介绍

Lombok是一个可以大量减少代码的工具, 通过Pluggable Annotation Processing API的方式解析注解, 在编译期为class文件注入getter或setter或toString等等诸如此类的代码。

准备工作

示例

Lombok通过注解生效, 官方注解列表

@Getter

@Setter

public class User{

private Long id;

private String name;

}

public class MyTest() {

public static void main(String[] args) {

User user = new User();

System.out.println("自动生成的方法:" + user.getId() + "," + user.getName());

}

}

为什么摒弃它

Lombok具有太强的侵入性

失去了封装的意义

具有太强的侵入性

我在第一次接触到到带有Lombok项目的时候, 编译报错, 虽然我导入了Lombok的maven地址, 但是仍然提示找不到getter方法。

点进去一看, 发现根本没有getter方法, 只有一个@Getter注解。

也就是说, 一旦你使用了Lombok, 所有编译你代码的人都必须使用Lombok编译, 传染性、侵入性太强

失去了封装的意义

更重要的是, 面向对象。

如果我们只是不想写getter和setter方法, 不如就直接将field设置成public。

长久的写重复的getter和setter方法已经让人不知道为什么要这样写, 只知道大家都是这样写, 以前都是这样写, 所以这样写。

public void setName(String name) {

this.name = name;

}

public void setName(String name) {

switch(name) {

case "admin": this.name = "I am admin:"+name; break;

case "user" : this.name = "I am user:" +name; break;

}

}

第二个setter方法, 封装了逻辑操作, 和第一个方法不同, 这就是setter方法的意义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值