您可以通过在给定的函数列表上创建Stream来简单地编写很多代码:
public static <T> long getNonNullFieldCount(T t, List<Function<? super T, ?>> functionList) { return functionList.stream().map(f -> f.apply(t)).filter(Objects::nonNull).count();}这将返回
null每个函数返回的非字段的计数。每个函数都映射到将其应用于给定对象的结果,并且
null使用谓词过滤掉字段
Objects::nonNull。



