1、Objects.requireNonNull( )方法
源代码:
/* @param obj 需要检测是否为空的对象
* @param <T> 对象类型
* @return 对象不为空则返回该对象
* @throws 对象为空则报NullPointerException异常
*/
public static <T> T requireNonNull(T obj) {
if (obj == null)
throw new NullPointerException();
return obj;
}
为什么使用它
控制行为,无论如何都要不为空,可以尽早地抛出异常。
public class Foo {
private final Bar bar;
public Foo(Bar bar) {
Objects.requireNonNull(bar, "bar must not be null");
this.bar = bar;
}
或者更简单
this.bar = Objects.requireNonNull(bar, "bar must not be null");
这个想法的真正力量与最终字段。因为现在类中的任何其他代码可以安全地假设 bar 不为空 - 因此您不需要任何 if(bar == null)在其他地方检查!
2、EnumSet.noneOf()方法
- noneOf()方法在java.util包中可用。
- noneOf()方法用于创建具有给定元素类型(ele_ty)的空枚举集。
- noneOf()方法是静态方法,可以使用类名进行访问,如果尝试使用类对象访问该方法,则不会收到错误。
- 在创建空白枚举集时,noneOf()方法可能会引发异常。
NullPointerException:当给定参数为null时,可能引发此异常。
示例
//EnumSet的noneOf(Class elemenType)方法
import java.util.*;
public class NoneOfEnumSet {
//初始化枚举变量
//与一些常数
public enum Colors {
RED,
BLUE,
GREEN,
PURPLE,
YELLOW
};
public static void main(String[] args) {
//在这里,我们正在创建两个EnumSet
EnumSet < Colors > all_of = null;
//通过使用allOf()方法是
//获取枚举的所有元素并放入EnumSet中
all_of = EnumSet.allOf(Colors.class);
//显示修改后的EnumSet
System.out.println("EnumSet.allOf(Colors.class): " + all_of);
//通过使用noneOf()方法是
//没有任何元素存在
//去创建EnumSet中none_of
EnumSet none_of = EnumSet.noneOf(Colors.class);
//显示修改后的EnumSet-
System.out.println("EnumSet.noneOf(Colors.class): " + none_of);
}
}
结果
EnumSet.allOf(Colors.class): [RED, BLUE, GREEN, PURPLE, YELLOW]
EnumSet.noneOf(Colors.class): []
String转换为int
import com.google.common.primitives.Ints;
int foo = Optional.ofNullable(myString)
.map(Ints::tryParse)
.orElse(0)