直接上方法:
private static boolean isSameField(List<SrmBiddingRfpDetail> list,
Function<SrmBiddingRfpDetail, Object> mapper) {
// distinct()方法去除重复的值
// count()方法计算剩余元素的数量,如果数量为1,则说明所有元素指定的字段相同,返回true;否则返回false。
return list.stream()
.map(mapper)
.distinct()
.count() == 1;
}
调用示例:
if(!isSameField(detailList, Detail::getUnitCode)){
throw new ServiceException("物料必须同公司");
}