大家帮我看看,这代码是水平。。

2021-12-09 14:54:02 +08:00
 Wsdba

刚接手的一个项目,发现这个人很喜欢这样写。

19250 次点击
所在节点    Java
159 条回复
GeekSuPro
2021-12-09 18:47:08 +08:00
wocao, 小丑就是我自己,我也这样写
Jooooooooo
2021-12-09 18:55:19 +08:00
这写的挺好的, 最多就是提前返回可以优化一下.
JeffersonQin
2021-12-09 18:56:11 +08:00
图一有待改进,但图二真心觉得还行。。。
cppgohan
2021-12-09 19:02:56 +08:00
@mxT52CRuqR6o5 分享的这俩都挺经典, 哈哈
weiwenhao
2021-12-09 19:04:12 +08:00
@JeffersonQin
flag = true
if member1 == null {
flag = false
}

if positionsInfo == null {
flag = fase
}

类似这样做个取反逻辑会更加清晰呀
JeffersonQin
2021-12-09 19:13:55 +08:00
@weiwenhao 我感觉图里的逻辑和你给的例子不太一样,而且嵌套 if 还有好处,可以防止深层次的 null pointer exception

比方说这两天我写 dotnet 用 opencv 的 wrapper ,判空会这么写:

if (src == null)
if (src.IsDisposed)
if (src.CvPtr == IntPtr.Zero)
src.Dispose();

诚然你也可以用 goto 的写法,不过嵌套 if 在某些情况下还是更直观的
JeffersonQin
2021-12-09 19:15:09 +08:00
@JeffersonQin 打错了 if 条件都反了 直接 ctrl c/v 忘记改了
vchroc
2021-12-09 19:18:53 +08:00
@DreamingCTW Optional
admin7785
2021-12-09 19:23:54 +08:00
楼主可不可以把重构之后的代码贴出来,学习学习
fashionash
2021-12-09 19:33:28 +08:00
别的不说,dao 接口返回 JSONObject 是认真的吗?
wangyzj
2021-12-09 19:43:08 +08:00
看方法命名就感觉像是一个 void 的方法
member1 应该是 memberId
还有就是不至于写俩方法把
if 嵌套还好
不过我感觉既然 return 了,没必要 else 了
horizon
2021-12-09 19:56:03 +08:00
第二个没啥问题啊。。
pkwenda
2021-12-09 20:20:54 +08:00
尝试优化了下劝退了

![carbon.png]( https://s2.loli.net/2021/12/09/3yxPRG8sIXnverA.png)
Akiya
2021-12-09 20:27:22 +08:00
第一个代码应该只需要 2 行:

if ((member2 == null && member1 != null) || (member2 != null && !member2.equals(member1))) {
return ...
}
return false

第二个代码感觉没啥问题,毕竟每一步值都是上面获取的,如果后面没有其他逻辑的话其实可以把 flag=true 改成 return true
micean
2021-12-09 20:29:10 +08:00
换 kotlin
Samuelcc
2021-12-09 20:31:08 +08:00
这是典型 optional 的应用场景吧
kerro1990
2021-12-09 20:46:02 +08:00
很好,简单容易理解,没有弯弯绕绕
raaaaaar
2021-12-09 21:11:47 +08:00
改进方法就是判断的时候取反,多提前 return ,不要嵌套
AccIdent
2021-12-09 21:13:58 +08:00
return Objects.equals(mem1, mem2) ? false: changePartyPosition(...);
honkki
2021-12-09 21:26:11 +08:00
&& || 这些就硬不用呗

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

https://tanronggui.xyz/t/821118

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

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

© 2021 V2EX