Java8 的一个方法吐槽

2016-08-05 18:06:06 +08:00
 hqtc

偶然看到 Java 8 中, Objects 工具类中有一个一个判断传入的对象是否为 null 的方法,感觉有点萌啊。

public static boolean isNull(Object obj) {
    return obj == null;
}

敢问各位小伙伴,这种方法为啥要搞到 jdk 里面呢,意义何在?

5535 次点击
所在节点    Java
23 条回复
skydiver
2016-08-05 18:09:15 +08:00
Java8 支持了函数式编程,函数可以作为参数传入。

如果标准库不提供你就总得自己写 lambda ,太麻烦
skydiver
2016-08-05 18:10:40 +08:00
注释里都写了,为什么不仔细看了就来发帖。

* @apiNote This method exists to be used as a
* {@link java.util.function.Predicate}, {@code filter(Objects::isNull)}
youxiachai
2016-08-05 18:33:04 +08:00
估计到时候...函数式又有一波吐槽了...
ChiangDi
2016-08-05 18:41:06 +08:00
这不是萌
ChiangDi
2016-08-05 18:41:16 +08:00
这是原则
ChiangDi
2016-08-05 18:42:20 +08:00
估计又有人要来吐槽 npm 上两行代码也能做一个模块了
acoder2013
2016-08-05 18:55:04 +08:00
看看注释就知道每一个方法的意义
wander2008
2016-08-05 20:09:14 +08:00
我想你可能是想多了。就想记自己写个工具类判断一样的。
xgfan
2016-08-05 20:18:48 +08:00
/**
* Returns a function that always returns its input argument.
*
* @param <T> the type of the input and output objects to the function
* @return a function that always returns its input argument
*/
static <T> Function<T, T> identity() {
return t -> t;
}
xgfan
2016-08-05 20:19:03 +08:00
这个岂不是更加萌?
twoyuan
2016-08-05 20:24:27 +08:00
filter 的时候可以写成 Objects::isNull 看起来不是很爽嘛
Shura
2016-08-05 20:26:27 +08:00
楼主如果用过 lambda 表达式就知道了
shyling
2016-08-05 20:36:33 +08:00
ArrayList.stream.filter(Objects::isNull)
wizardforcel
2016-08-05 21:43:45 +08:00
@twoyuan 太长了, o -> o == null 岂不是更加爽?
ewBuyVmLZMZE
2016-08-05 21:57:43 +08:00
这个是用于函数式的,没有什么槽点,需要 用即可。
shimanooo
2016-08-05 22:32:37 +08:00
@wizardforcel
id 函数 o -> o
O2O 哈哈
SoloCompany
2016-08-05 23:01:30 +08:00
kotlin 有 “ it ” 解决可读性问题, java 8 的话显然方法引用可读性更好
NullMan
2016-08-05 23:24:52 +08:00
@wizardforcel 从便利性来说, 你这个更赞! 毕竟不是所有人都晓得这个函数; 从可读性来说, 还是 isNull 更赞!

从我的角度来说, 还是你的最好.
ooonme
2016-08-06 00:32:49 +08:00
scala: 什么函数式,一边玩去
dreampursuer
2016-08-06 12:39:14 +08:00
groovy 更彻底

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/297429

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX