【神代码】下午review看到的一段经典代码

怎么说?

绩效全靠空指针是吧

你更专业

不如ObjectUtils.isEmpty()完美

我选hutool

1 个赞

有时候还得加上
!“null”.equals(dto.getSearch()

1 个赞

hutool YYDS

1 个赞

按照一般我们的业务逻辑:“”,null," "应该视为非法的.ObjectUtils.isEmpty并不能达成StringUtils.isBlank的效果.
然后我看它源码里还要instanceof,已经知道是字符串了,就不用再多此一举了判断类型了

public static boolean isEmpty(@Nullable Object obj) {
		if (obj == null) {
			return true;
		}

		if (obj instanceof Optional) {
			return !((Optional) obj).isPresent();
		}
		if (obj instanceof CharSequence) {
			return ((CharSequence) obj).length() == 0;
		}
		if (obj.getClass().isArray()) {
			return Array.getLength(obj) == 0;
		}
		if (obj instanceof Collection) {
			return ((Collection) obj).isEmpty();
		}
		if (obj instanceof Map) {
			return ((Map) obj).isEmpty();
		}

		// else
		return false;
	}

写的一点毛病没有啊,有什么问题

mybatis的字符串的非空判断写多了,咋一看感觉没啥问题 :rofl:

面试不问吗?怎么过的

我只能说此小伙未来可期

除了dto可能为空,竟然一眼看过去没啥毛病,我果然kotlin代码写太久了。

if (listDevice.value?.data?.firstOrNull { it.currentDevice == 1 }?.deviceType != "OG") return@setQuickClickListener

除了可能空指针没看出来有啥问题

可以统一使用一个工具类比如 hutool
hutool: :candy:小而全的Java工具类库,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。 (gitee.com)

2 个赞

你就说能不能用吧 :neutral_face:

2 个赞

你就说能不能用吧 :rofl:

  if (Optional.ofNullable(dto.getSearch()).filter(s -> !s.isEmpty()).isPresent()) {
       // 此处省略一万行
   }
2 个赞

如果dto不为null,有什么问题吗?

进这个贴留个表情走了
image