java自定义注解非空校验
时间: 2023-09-10 18:11:29 浏览: 121
在 Java 中,可以通过自定义注解来实现非空校验。下面是一个简单的示例:
```java
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface NotNull {
}
```
这个注解表示被注解的字段不能为空。然后,在需要进行非空校验的类中,可以使用这个注解来标记需要校验的字段:
```java
public class Person {
@NotNull
private String name;
@NotNull
private Integer age;
}
```
最后,可以通过反射来检查注解是否被应用到了对应的字段,并进行相应的处理:
```java
public static void validate(Object obj) throws Exception {
for (Field field : obj.getClass().getDeclaredFields()) {
if (field.isAnnotationPresent(NotNull.class)) {
field.setAccessible(true);
if (field.get(obj) == null) {
throw new Exception(field.getName() + " cannot be null");
}
}
}
}
```
这个方法会遍历类中所有被注解为 `@NotNull` 的字段,并检查它们是否为空。如果为空,就会抛出异常。可以在需要进行非空校验的时候调用这个方法。
阅读全文