org.apache.commons扩展容器中的Predicate类

JDK、guava、Apache都提供Predicate断言类,用法大同小异。

1)相等判断:EqualPredicate

2)非空判断:NotNullPredicate

3)唯一判断:EqualPredicate

4)自定义判断:重写Predicate接口中的evaluate()方法

5)组合式判断:

  • PredicateUtils.allPredicate(...) 添加多个Predicate元素, 都为真才为真
  • PredicateUtils.andPredicate(...) 添加两个Predicate元素, 两个全为真才为真
  • PredicateUtils.anyPredicate(...) 添加多个Predicate元素,任何一为真就为真
下面的代码只对其中的一种容器进行演示,其他容器的用法大同小异:

public static void main(String[] args) {
		Predicate<String> notNull = NotNullPredicate.notNullPredicate();
		// 自定义判断:字符串长度大于等于5
		Predicate<String> self = new Predicate<String>() {
			@Override
			public boolean evaluate(String object) {
				return object.length() >= 5;
			}
		};
		// 组合两个判断
		Predicate<String> pre = PredicateUtils.allPredicate(notNull, self);
		List<String> list = PredicatedList.predicatedList(new ArrayList(), pre);
		list.add("cdsfds");
		// list.add("fds")出错;
		// list.add(null);出错

	}

	// 判断相等
	public static void equal() {
		Predicate<Integer> equal = EqualPredicate.equalPredicate(2345);
		boolean flag = equal.evaluate(123);
		boolean flag2 = equal.evaluate(2345);
		System.out.println(flag + "\t" + flag2);
		// Output:false true
	}

	// 非空判断
	public static void notNull() {
		Predicate<String> notNull = NotNullPredicate.notNullPredicate();
		List<String> list = PredicatedList.predicatedList(new ArrayList(),
				notNull);
		list.add("aaa");
		list.add("bbb");
		// list.add(null);报错
	}

	// 唯一判断
	public static void unique() {
		Predicate<String> unique = UniquePredicate.uniquePredicate();
		List<String> list = PredicatedList.predicatedList(new ArrayList(),
				unique);
		list.add("aaa");
		list.add("bbb");
		// list.add("aaa");报错
	}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值