下面是Lombok的NonNull
注释的java文档:
如果加上一个参数,lombok将在方法/构造函数主体的开头插入一个空检查,抛出一个{@code NullPointerException},参数名作为消息。如果放在字段上,任何为该字段赋值的生成方法也将生成这些空检查。请注意,任何名为{@code NonNull}且带有任何大小写和任何包的注释都将导致为生成的方法生成nullchecks(并且注释将被复制到getter返回类型和生成的方法的任何参数),但只有此注释(如果存在于参数上),将导致在其他手写方法中插入空检查。
警告:如果java社区决定支持单个{@code@NonNull}注释(例如通过JSR305),那么该注释将从lombok包中删除。如果更新import语句的需要让您感到害怕,那么您应该使用自己的名为{@code@NonNull}的注释,而不是这个注释。
拥有我自己的注释的最简单方法是什么,比如说
非null
非null
,以及基于我的注释插入null检查的Lombok?
更新:我的问题是有一个注释用于方法参数。
首先,您需要将其命名为nonNull
(大小写无关)。此外,您需要设置另一个Lombok注释(例如@Data
,@Setter
,...),以便您的类型由Lombok处理。
总结自定义注释可能不如@lombok有价值。NonNull
-注释本身。从@lombok中受益的示例。NonNull
-注释,其中您的自定义注释甚至不会被处理,是指当您的类型不包含任何其他Lombok注释时,例如:
class NoLombokAnnotationsAnywhere {
void testMe(@lombok.NonNull String nonNull) { /* .. */ }
}
一旦调用new NoLombokAnnotationsAnywhere(). testMe(null)
,将产生一个NullPointerExc0019
。而这不会抛出任何与您的自定义注释。当然,这只适用于您没有任何其他Lombok注释的情况。一旦类型被Lombok处理,注释也会被处理。
如果您有自己的NonNull
-注释,那么您可以只添加另一个看起来合适的Lombok注释,并且Lombok会为您添加一个空检查,例如:
@Data
class NonNullData {
@mycustom.Nonnull
String value;
}
// Calling the following throws a NullPointerException as expected
new NonNullData(null);
您可能还会发现以下问题:支持名为@NotNull和@NonNull的注释
我在代码中使用Lombok自动生成getter和setter代码。我想添加其他个人注释并使用它。 例如,我想添加一个方法来验证列表中是否存在一个键: 创建注释后,我将执行以下操作:
我想使用Lombok的注释来自动生成方法参数的空校验代码,同时还使用FindBugs的来使用静态分析工具,并在情况适用时生成适当的警告。 目前,我需要做以下工作: 这很难看,所以我想避免使用这种语法。我读到了嵌套注释(这里和这里),但是我似乎找不到一种方法来创建我自己的自定义注释,将两个注释都作为嵌套注释。我是不是在尝试做一些行不通的事情? 以下是我的最新尝试:
问题内容: 我想编写自定义的Lombok注释处理程序。我知道http://notatube.blogspot.de/2010/12/project-lombok- creating-custom.html 。但是当前的lombok jar文件并不包含许多.class文件,而是包含名为.SCL.lombok的文件。 我发现.SCL.lombok文件是.class文件,Lombok的生成脚本在生成ja
我想编写自定义Lombok注释处理程序。我知道http://notatube.blogspot.de/2010/12/project-lombok-creating-custom.html.但是当前的lombok jar文件并不包含很多内容。类文件,但文件名为。症状自评量表。取而代之的是龙目山。 我发现,的。SCL. lombok文件是. class文件,Lombok的构建脚本在生成jar文件时重
有没有办法为自定义生成的代码? 考虑以下简单类: 我希望Lombok为生成Setter,就像我在上面的示例中实现的那样。这应该只在用注释的类和作为的属性上完成。其他属性的Setter,在本例中应该像往常一样生成。 是否有办法根据这些标准定制Setter代码的生成?