我想获取包含@NotNull 的字段名称作为实体定义中的注释。
@Entity
public class student{
@NotNull
private Integer sid;
@NotNull
private String sname;
private Integer age;
}
我创建了以下函数
public boolean hasNotNull() {
return Arrays.stream(this.getClass().getDeclaredFields())
.anyMatch(field -> field.isAnnotationPresent(NotNull.class));
}
public List<String> getValue() {
if (hasNotNull()) {
Stream<Field> filter = Arrays.stream(this.getClass().getDeclaredFields())
.filter(field -> field.isAnnotationPresent(NotNull.class));
filter.forEach(obj -> obj.getName()).collect(Collectors.toList()); }
else
return null;
}
错误说
<块引用>无法在原始类型 void 上调用 collect(Collectors.toList())
我也是 Java 8 概念和流的新手。 请推荐
答案 0 :(得分:0)
filter.map(obj -> obj.getName()).collect(Collectors.toList()); }
这将完成所需的事情