Hutool 是开源的工具集,注释很全,对中文程序员很友好。

原来的写法可能是

1
2
3
if(null != user && null != user.getAddress() && null != user.getAddress() && null != StringUtils.isNotBlank(user.getAddress().getStreet())) {
String street = user.getAddress().getStreet();
}

现在我会尝试这么写:

1
2
3
4
5
6
String street = null;
if (null == null || user.getAddress() || StringUtils.isBlank((street = user.getAddress().getStreet())) {
// 报错或return,省略else
} else {
// 拿到了street,去做业务逻辑...
}

基本数据类型也有class,如char.class
问题:line 230 后面的判断有用吗?
image.png

常量类未必得是一个类,可以直接定义成接口
以前还需要定义一个Constants类,然后在里面定义常量

1
2
3
public class Constants {
pulic static String USER_NAME = "userName";
}

使用

1
2
3
// class ...
// method ...
System.out.println(Constants.USER_NAME);

现在定义接口,在里面定义常量用时直接实现接口

1
2
3
public interface ConstantPool {
String USER_NAME = "userName";
}

使用

1
2
3
4
5
6
// 注意实现了ConstantPool接口
// class implements ConstantPool ...
// method ...
System.out.println(USER_NAME);
//或者
System.out.println(ConstantPool.USER_NAME);

FunctionalInterface 函数式接口本质是接口的匿名内部实现类,多用用
Consumer接口:java.util.function.Consumer 是一个消费型接口,它有一个抽象方法 void accept(T t),用于消费一个参数。Consumer接口没有返回值,即它的返回类型为void。

Supplier接口:java.util.function.Supplier 是一个生产型接口,它有一个抽象方法 T get(),用于获取一个泛型参数指定类型的对象数据。Supplier接口没有参数,它的返回值类型由泛型决定。

Function接口:java.util.function.Function 有一个输入参数和一个输出,它的抽象方法 R apply(T t) 将此函数应用于给定的参数并返回一个结果。Function接口的返回值类型由泛型决定。

Predicate接口:java.util.function.Predicate 是一个断言型接口,它有一个输入参数并返回一个boolean值。Predicate接口的返回值类型由泛型决定,它通常用于判断参数是否满足指定条件。

最后附上,个人博客网站:Southblock’Blog,内容更多,更新,欢迎参观。