直接使用 != null 还是用 Objects.nonNull 呢
感觉好像用 Objects 更加对象化
大佬们一般杂用呢

直接使用 != null 还是用 Objects.nonNull 呢
感觉好像用 Objects 更加对象化
大佬们一般杂用呢
1 xuanbg Sep 7, 2020 != null 不挺好的吗 |
2 x66128 Sep 7, 2020 在床上看一眼就能判断了 |
3 optional Sep 7, 2020 via iPhone Objects.isNullO nonNull requireNonNull |
4 optional Sep 7, 2020 via iPhone 现在好久不用 ==null 要不就是 Optional.ofNullable |
5 fakeJas0n Sep 7, 2020 null != obj |
6 havemail Sep 7, 2020 现在 Objects 现在用的比较多 |
7 chendy Sep 7, 2020 Objects.nonNull 主要还是当 Objects::nonNull 用的多一些 平时的逻辑直接 != null 就好,idea 里 .nn 就出来了 |
9 WngShhng Sep 7, 2020 要说 null,kotlin 的处理方式是真的好 |
10 echooo0 Sep 7, 2020 Objects.nonNull |
11 kingfalse Sep 7, 2020 kotlin ?. |
12 youyouyou0123456 Sep 7, 2020 |
13 sheeta Sep 7, 2020 php ?-> |
14 xloger Sep 7, 2020 7 楼的方式不错,学到了。我以前用的快捷键是这样的: ifn 能快速出来 if(xxx == null),inn 能快速出来 if(xxx != null)。 也挺方便的,供参考。 顺带,我也觉得 kotlin 的处理方式最好,现在项目是 Java Kotlin 混编,每次写 Java 需要加各种 if null 就烦躁。 |
15 cheng6563 Sep 7, 2020 !=null 就行了 用 Objects 是嫌打字不够多么 |
16 FaXiaoKe Sep 7, 2020 :? 不好用么 |
18 raptium Sep 7, 2020 我就直接用 != null 。 Objects.nonNull 应该在作为方法引用的时候比较有用,比如 foo.stream().filter(Objects::nonNull) 这种。 |
19 hhhsuan Sep 7, 2020 直接用!=null, Objects.nonNull 不是给你干这种事用 |
20 shm7 Sep 7, 2020 可以读读实现源码吧。python 就一个 None,用 is not 就行了 |
22 xiaoliu926 Sep 7, 2020 kotlin ?. |
23 clf Sep 7, 2020 外部传入的直接在方法上用 NonNull 注解…… 方法内部判断,一般用!= null 当然,自己写的一些经常可能为 null 或使用时需要判断为 null 的方法,我会用 Optional 封装(很少)。 return Optional.ofNullable(xxx); 返回的 opt 对象的后续操作封装过方法的话,就直接: opt.ifPresent(doSome); 为 null 的时候如果需要抛出业务异常: opt.orElseThrow(Exception) |
24 googoehl Sep 7, 2020 7 楼开发小技巧 可以 直接 .nn 快捷生成判空代码 |
25 googoehl Sep 7, 2020 |
26 PiersSoCool Sep 7, 2020 一般都用 Optional 处理可能非空值,因为一般不止一层,都是 a.b.c.d 。这么做省的哪里忘了判断 npe 了。 |
27 newmlp Sep 7, 2020 if (!ptr) {} |
28 bjking2014 Sep 7, 2020 via Android @chendy 还有其他的技巧吗,有没有关键字可以查 |
29 crayygy Sep 7, 2020 @bjking2014 #28 这个一般叫 postfix completion, 可以在这里查到 https://www.jetbrains.com/help/idea/settings-postfix-completion.html Android Studio/Idea 还可以自己去配置 completion,以前写 Java 的时候自己配置了很多的快捷方式,后来写了一年多的 Kotlin 全扔了... |
30 yungo8 Sep 7, 2020 via Android 判断为 null 当然是 null == xxxx 哈哈哈 |
31 chendy Sep 7, 2020 @bjking2014 各种地方.一下从后往前翻就都看到了,常用的语法结构基本都有对应的 早年和 live template 在一起,现在好像单独拆了,我只会用不会自己写。。。 .not .if .while .var .return .null .nn .new 遍历的 .for .fori .forr 加括号 .par ,强转 .cast 异常的 .try .twr 还有一些不是 postfix 的,像 psvm sout ( eclipse 是 syso ) thr fori 很多很多。。。 |
32 admin7785 Sep 7, 2020 via iPhone requireNonNull |
33 ychost Sep 8, 2020 Optional.ofNullable(xx).filter(...).map(...)...orElse(null) |
35 chenny3 Sep 8, 2020 Objects.nonNull |
37 fordawn OP @PiersSoCool 有道理,不过 optional 写起来就是感觉好长,但是按意义来说,optional 确实合适 |
38 PiersSoCool Sep 15, 2020 @fordawn 其实我也不愿意这么写,但总是有 xx 的客户、调用者等等会以一种奇怪的方式访问你的代码,为了避免 bug 不得不这么写。以前说好的必须传这个参数,我信了,结果出问题了我背锅;现在说必须传这个参数我就呵呵了,我全都给你判断做异常处理 |
39 fordawn OP @PiersSoCool 说的是,尤其是对接三方的时候,文档写的啥都有,结果不一定哪个是空的,深有体会 |