【发布时间】:2019-10-10 12:56:24
【问题描述】:
今天在私有方法中,我使用了Long.parseLong()(全班只使用一次)和一些String 作为值。在同行评审中,同事写道,这个方法应该是static import,然后在没有Long. 的情况下调用。我问为什么,因为据我所知以及 https://stackoverflow.com/a/421127/4952262 中的内容在这种情况下我们应该使用 Long.parseLong() 而不是尝试保存 5 个字符。答案是parseLong 方法就在Java.lang.Long 包中,它是安全的,因为这个方法过去、现在和将来都在这个包中。是好方法吗?它真的让代码更具可读性吗?
【问题讨论】:
-
我不确定在这个问题上是否有行业立场;这主要是一种风格和/或偏好决定。 “正确”的答案通常是这样的:在代码库中保持一致
-
存在一些冗余,因为 parseInt、ParseLong、parseDouble 分别恰好位于 Int、Long 和 Double 中,它可以缩短算术表达式。但是我从未使用过它,或者(我承认)见过它。而我在单元测试中看到了许多静态导入。
-
静态导入确实应该非常谨慎地使用,但
parseLong可能没问题,除非您的公司可能会编写自己的 parseLong 方法来做其他事情。作为一个反模式示例,我曾在一个以静态导入 everything 为指导的地方工作。我们的代码是of(...),但我们无法判断它是 Stream.of、Date.of、Instant.of、List.of 还是其他任何东西。每次看到都让我呕吐。
标签: java static-import