Preconditions
前置条件检查,或者断言也行
checkNotNull
// NULL检查
Preconditions.checkNotNull(""); // null 抛异常
// 抛空指针异常,并打印信息
checkNotNull("", "参数不能为null");//
checkArgument
// 参数校验 ,当表达式为false的时候会抛java.lang.IllegalArgumentException
checkArgument( 1 == 2,"1 != 2");
// java.lang.IllegalArgumentException: 参数预期是success, 实际等于 error
String str = "error";
checkArgument( str.equals("sucess"), "参数预期是success, 实际等于 %s ", str);
checkState
// 状态检查,当表达式为false的时候会抛java.lang.IllegalStateException
checkState(1 == 2);
checkElementIndex
// 元素下坐标越界检查,index 不能大于size, 否则抛异常java.lang.IndexOutOfBoundsException
// 0 <= index < size
checkElementIndex(1,Lists.newArrayList().size());
// 同上, 0 <= index <= size
checkPositionIndex(1,new String[]{}.length,"123");
// 区间范围检查,0 < start <= end <= sieze,否则
// start < 0 || end < start || end > size 会抛异常
checkPositionIndexes(2,2,2);
Optional
对null的处理, 不过再java8中已经已经引用, 所以如果jdk是1.8以上的 可以使用jdk自带的
/**创建Optional*/
// of 方法返回一个包含对对象引用的optional对象,如果参数为null,会抛空指针
Optional<String> of = Optional.of("");
// 同上,不过参数可以为null
Optional<String> fromNullable = Optional.fromNullable(null);
// 创建一个引用缺失的 optionnal实例
Optional<Object> absent = Optional.absent();
optional的使用,
从optional中获取引用
/**从optional中获取引用**/
// isPresent, 返回optional中的引用,如果不是null则为ture,否则 false
fromNullable.isPresent();
// get 获取optional中的引用, 如果为null会抛异常java.lang.IllegalStateException
fromNullable.get();
// or(default), 如果引用为null, 则返回默认
fromNullable.or("default");
// orNull, 如果引用为null,则返回null
System.out.println(fromNullable.orNull());
// 返回Optional所包含引用的单例不可变集,如果引用存在,返回一个只有单一元素的集合,如果引用缺失为null,返回一个空集合。
Set<String> asSet = fromNullable.asSet();
/** 和 jdk8 的optional的转换*/
java.util.Optional<String> s = fromNullable.toJavaUtil();