ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java使用lombok简化bean的开发

2021-07-02 18:32:53  阅读:248  来源: 互联网

标签:Java NonNull void bean new baos lombok public


安装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,NonNull,void,bean,new,baos,lombok,public
来源: https://www.cnblogs.com/lypzzzzz/p/14964453.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有