【问题标题】:@NonNull annotation in project LombokLombok 项目中的 @NonNull 注释
【发布时间】:2018-01-13 17:53:15
【问题描述】:

我最近开始在我的项目中使用lombok。在 lombok 文档中,指定 @NonNull 注释可以配置为抛出 NullPointerExceptionIllegalArgumentException。指定默认情况下将抛出NullPointerException。还指定要抛出IllegalArgumentException,我应该设置lombok.nonNull.exceptionType = IllegalArgumentException。但是,我不明白应该在我的代码中指定lombok.nonNull.exceptionType = IllegalArgumentException 的位置。 `

import com.sandesha.lombak.domain.Employee;

import lombok.NonNull;

public class EmployeeOperation {

/**
 * @NonNull performs null check
 * @param e1
 * @param e2
 * @return
 */

public boolean isEqual(@NonNull Employee e1, @NonNull Employee e2)
{
    return e1.equals(e2);
}
}

请帮助我。谢谢。

【问题讨论】:

    标签: java spring lombok


    【解决方案1】:

    这个在@NonNull注解中没有参数化,只能在@NonNull的Lombok configuration keys中指定:

    支持的配置键:

    lombok.nonNull.exceptionType = [NullPointerException | IllegalArgumentException |断言](默认值:NullPointerException)。

    [...]

    在您的项目根目录中创建一个lombok.config 文件,其中包含以下行:

    lombok.nonNull.exceptionType = IllegalArgumentException
    

    有关 Lombok 配置系统的更多详细信息,请参阅Lombok documentation page

    【讨论】:

      【解决方案2】:

      您需要在项目的主目录中创建一个名为lombok.config 的文件,这是您项目的默认lombok 配置文件。该文件如下所示:

      lombok.nonNull.exceptionType = IllegalArgumentException
      lombok.nonNull.flagUsage = [warning | error] 
      

      你可能会看到the project

      【讨论】:

      • 谢谢你帮了大忙。但是,有没有办法,我应该可以把NullPointerException扔到某个地方,把IllegalArgumentException扔到某个地方?
      • 是的。为此,您需要手动检查(我没有找到其他方法)。就像:if (param == null) throw new NullPointerException("param"); 但默认是:IllegalArgumentException,因为你已经设置了。
      • @SandeshaJ 你可以使用多个lombok.config 文件。对于每个包,都会从其目录开始搜索并向上搜索,因此更具体的设置会覆盖更高目录中的设置。但是请不要这样做,坚持一个例外。没关系,但你最多只会把自己弄糊涂。
      猜你喜欢
      • 1970-01-01
      • 2019-10-16
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      • 2017-08-12
      • 1970-01-01
      相关资源
      最近更新 更多