Java使用lombok简化bean的开发

2021/7/2 20:24:40

本文主要是介绍Java使用lombok简化bean的开发,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

安装lombok

引入jar包

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.20</version>
    <scope>provided</scope>
</dependency>

在idea中安装lombok插件。

使用lombok

lombok会根据所添加的注解,在编译期自动生成Bean类的通用代码(构造器,Getter,Setter等)

@Getter@Setter

生成Getter与Setter方法

@ToString

自动重写toString()方法

@EqualsAndHashCode

自动重写equals()与hashCode()方法

@NonNull

被注解的字段不能为null

@RequiredArgsConstructor

自动生成需要的构造器:默认生成无参构造器;如果有字段被 @NonNull 注解,则生成非空字段构造器

例如

@RequiredArgsConstructor
public class User
{
    @NonNull
    private String username;
    @NonNull
    private String password;
    private int age;
}

将生成以下构造器

public User(@NonNull String username,@NonNull String password)
{
    this.username = username;
    this.password = password;
}

@NoArgsConstructor

自动生成无参构造器

@AllArgsConstructor

自动生成全参构造器

@Data

最方便的注解,等价与同时使用了 @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCod 这些注解

@Cleanup

自动关闭资源

public void f()
{
    try
    {
        @Cleanup
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        baos.write(new byte[]{'Y','e','s'});
        System.out.println(baos.toString());
    }
    catch(IOException e)
    {
        e.printStackTrace();
    }
}

等价于

public void f()
{
    try
    {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        try
        {
            baos.write(new byte[]{'Y','e','s'});
            System.out.println(baos.toString());
        }
        finally
        {
            baos.close();
        }
    }
    catch(IOException e)
    {
        e.printStackTrace();
    }
}

@Synchronized

自动将方法中的代码转换为同步代码块

@Synchronized
public void f()
{
    // TODO
}

等价于

private final java.lang.Object $lock = new java.lang.Object[0];

public void f()
{
    synchronized($lock)
    {
        // TODO
    }
}

@SneakyThrows

用来注解构造器和方法,可以不用手动声明方法声明上的throws语句

@SneakyThrows
public void f()
{
    throw new IllegalAccessException();
}

@Slf4j

会自动创建一个叫log的Logger对象,等价于以下代码

private static final Logger log= LoggerFactory.getLogger(User.class);

使用lombok注意事项

如果多个Bean类互相依赖,使用Lombok会循环引用,导致栈溢出。这时,需要手动实现相关方法。



这篇关于Java使用lombok简化bean的开发的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程