- 主题:非空注解有人实践过吗
在类成员变量,方法参数,方法返回值上都加上非空注解,再配合代码静态检查,感觉上可以完美的解决空指针问题了。
但实践下来,手动加上这些注解很麻烦,IDEA的Infer Nullity好像也不太好用
发自「今日水木 on iOS」
--
FROM 221.222.21.*
请先了解一下 java 的非空注解. 在方法参数上标注, 相当于方法间调用参数的协议. 静态检查, 保证了在该协议基础上, 没有多余的 if null判断, 也不缺少必须的 if null判断.
Kotlin 的空处理更简洁, 可惜 java 没有, 只能做到这样了.
【 在 guestking 的大作中提到: 】
: 意义不大
: 当一个字符串为空的时候,说明有异常情况发生
: 这个时候你不把异常抛出来,可能会带来后续更大的逻辑错误
: ...................
--
FROM 123.125.37.*
使用注解, 不需要 Optional 啊
【 在 javafish 的大作中提到: 】
: 实话说为了一个null
: 弄出一套optional感觉好累赘
--
FROM 123.125.37.*
先了解一下这个注解吧, NonNull, Nullable 谁说不允许空了?
【 在 istend 的大作中提到: 】
: 不能一概而论把, 有些情境下,空是正常情况。我感觉没有完美方案,只有相对合适
--
FROM 123.125.37.*
你大概率都没用过这个注解
【 在 istend 的大作中提到: 】
:
: 呵呵,不知所谓,懒得回复
: --
:
发自「今日水木 on iOS」
--
FROM 123.125.37.*
本来就是靠静态检查去掉很多不必要的空检查,和漏了的空检查
【 在 nikezhang 的大作中提到: 】
:
: 这只是静态检查,运行起来谁管你什么注解呢
: --
: 发自xsmth (iOS版)
: --
:
发自「今日水木 on iOS」
--
FROM 221.222.21.*
不用这个的话,哪个地方需要检查空都是拍脑袋或者人工分析的,很容易遗漏或者乱加很多没必要的空检查
【 在 nikezhang 的大作中提到: 】
:
: 这只是静态检查,运行起来谁管你什么注解呢
: --
: 发自xsmth (iOS版)
: --
:
发自「今日水木 on iOS」
--
FROM 221.222.21.*
怎么都觉得非空注解没有用呢. 神器在菜单那么明显的位置有个"Infer Nullity"功能, 难道是神器公司的程序员闲的蛋疼吗?
--
FROM 123.125.37.*
很多家都提供, 只是用来帮助静态检查的. Android, JetBrains都有
【 在 canper 的大作中提到: 】
: 这个是lombok的?
:
--
FROM 123.125.37.*
这个看起来不错, 也是基于非空注解的.
感觉有2个优点:
1. 编译时给出警告, 比静态检查更方便, 更强制.
2. 默认是 @NonNull, 这样很多地方就不用加注解了.
【 在 fly2never 的大作中提到: 】
: 可以看一下uber的开源库nullaway, 比较完整的解决了这个问题, 我们正在用
--
FROM 123.125.37.*