为什么不允许用 import *

2020-06-29 11:44:22 +08:00
 rizon

Java 语言

有些公司 有很多各种规定,其中一个代码规范就是不允许使用 import a.b.c.* 这样的。

这是为什么??

7024 次点击
所在节点    Java
30 条回复
GM
2020-06-29 18:36:05 +08:00
@GINLSL C# 这东西,好用的地方很好用,不好用的地方也很让人不爽。不强制 namespace 和目录结构一样也是个比较恶心的地方,容易出现不对应,影响阅读源码。
jim9606
2020-06-29 18:52:05 +08:00
IDE 自动 import 一般都不会出现 import a.b.*这样的。
不过我觉得 import java.util.*没什么问题
jeffh
2020-06-29 18:55:31 +08:00
现在都是 ide 自动导入的了,没必要限制这么严格吧
itskingname
2020-06-29 18:56:13 +08:00
楼主问的是 Java,我写了一篇公众号说明为什么 Python 里面禁止使用 import *

https://mp.weixin.qq.com/s/bFmCbzgxLjTZWFbleBVrDA
SilencerL
2020-06-29 19:02:50 +08:00
@GM #14
如果你开心的话用 using static 也是可以的...

using Example = Test.Demo.Example; // Test 是个类
using AnotherExample = OtherTest.Demo.Example; // 还可以当作别名防止重复类名的困扰
GM
2020-06-29 19:21:43 +08:00
@SilencerL 这种需要手动写,每个字母都要自己打,用起来也挺郁闷的,IDE 默认都是给你 using My.Namespace;
goodboy95
2020-06-29 19:43:53 +08:00
话说楼上写代码都用 vim 吗?我一般看代码都是 ctrl+alt+b (idea) 或者 F12 (VS / VS code)直接看函数在哪个文件。而且写代码的时候真的很少碰到类名重复的情况,毕竟一个文件就 import 那么多东西,有几次遇见重复的也不至于在写代码过程中看不出来(毕竟里面的变量和方法完全不一样了)
optional
2020-06-29 19:56:59 +08:00
@goodboy95 你肯定不 review 代码。。。
wuketidai
2020-06-29 20:05:00 +08:00
显式优于隐式
skypyb
2020-06-29 20:14:47 +08:00
Collectors 类, 你们都不静态导入*的嘛?
这玩意不静态导入代码会挺丑陋的。

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

https://www.v2ex.com/t/685565

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

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

© 2021 V2EX