hqtc
V2EX  ›  Java

Java8 的一个方法吐槽

  •  1
     
  •   hqtc · Aug 5, 2016 · 6984 views
    This topic created in 3746 days ago, the information mentioned may be changed or developed.

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

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

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

    23 replies  •  2016-09-06 12:31:18 +08:00
    skydiver
    skydiver
    Aug 5, 2016❤️1
    1
    Java8 支持了函数式编程,函数可以作为参数传入。

    如果标准库不提供你就总得自己写 lambda ,太麻烦
    skydiver
    skydiver
    Aug 5, 2016❤️1
    2
    注释里都写了,为什么不仔细看了就来发帖。

    * @apiNote This method exists to be used as a
    * {@link java.util.function.Predicate}, {@code filter(Objects::isNull)}
    youxiachai
    youxiachai
    Aug 5, 2016
    3
    估计到时候...函数式又有一波吐槽了...
    ChiangDi
    ChiangDi
    Aug 5, 2016 via Android
    4
    这不是萌
    ChiangDi
    ChiangDi
    Aug 5, 2016 via Android
    5
    这是原则
    ChiangDi
    ChiangDi
    Aug 5, 2016 via Android
    6
    估计又有人要来吐槽 npm 上两行代码也能做一个模块了
    acoder2013
    acoder2013
    Aug 5, 2016
    7
    看看注释就知道每一个方法的意义
    wander2008
    wander2008
    Aug 5, 2016 via iPhone
    8
    我想你可能是想多了。就想记自己写个工具类判断一样的。
    6IbA2bj5ip3tK49j
    6IbA2bj5ip3tK49j
    Aug 5, 2016
    9
    /**
    * 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;
    }
    6IbA2bj5ip3tK49j
    6IbA2bj5ip3tK49j
    Aug 5, 2016
    10
    这个岂不是更加萌?
    twoyuan
    twoyuan
    Aug 5, 2016
    11
    filter 的时候可以写成 Objects::isNull 看起来不是很爽嘛
    Shura
    Shura
    Aug 5, 2016 via Android❤️1
    12
    楼主如果用过 lambda 表达式就知道了
    shyling
    shyling
    Aug 5, 2016❤️1
    13
    ArrayList.stream.filter(Objects::isNull)
    wizardforcel
    wizardforcel
    Aug 5, 2016❤️2
    14
    @twoyuan 太长了, o -> o == null 岂不是更加爽?
    ewBuyVmLZMZE
    ewBuyVmLZMZE
    Aug 5, 2016
    15
    这个是用于函数式的,没有什么槽点,需要 用即可。
    shimanooo
    shimanooo
    Aug 5, 2016 via iPhone
    16
    @wizardforcel
    id 函数 o -> o
    O2O 哈哈
    SoloCompany
    SoloCompany
    Aug 5, 2016 via iPhone
    17
    kotlin 有 “ it ” 解决可读性问题, java 8 的话显然方法引用可读性更好
    NullMan
    NullMan
    Aug 5, 2016
    18
    @wizardforcel 从便利性来说, 你这个更赞! 毕竟不是所有人都晓得这个函数; 从可读性来说, 还是 isNull 更赞!

    从我的角度来说, 还是你的最好.
    ooonme
    ooonme
    Aug 6, 2016 via iPhone
    19
    scala: 什么函数式,一边玩去
    dreampursuer
    dreampursuer
    Aug 6, 2016
    20
    groovy 更彻底
    baozijun
    baozijun
    Aug 7, 2016 via Android
    21
    @ooonme 哈哈,不过 scala 也算是 java 系语言,毕竟都是 JVM 生态
    param
    param
    Aug 26, 2016
    22
    我仿佛又听到有人在背后偷偷 @我
    ik1010
    ik1010
    Sep 6, 2016
    23
    语义化用的吧,看来你没有用过 Guava
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1593 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 62ms · UTC 09:19 · PVG 17:19 · LAX 01:19 · JFK 04:19
    ♥ Do have faith in what you're doing.