java - 为什么 Java 没有 "deep"通配符导入?

标签 java import wildcard

<分区>

为什么 import one.two.* 不包含 import one.two.three.MyClass? Java 不应该有类似import one.two.** 的东西吗?或者有什么原因(除了他们没有做,而不是他们做不到)?

谢谢

最佳答案

Java 并不将包视为真正的子类化;虽然 java.utiljava.util.concurrency 可能看起来第二个是第一个的一部分,但它们被视为完全独立的并且点主要是为了整洁.

这意味着您不必害怕将您的类或接口(interface)命名为与以后在某些超包或子包中声明的另一个相同的类或接口(interface),这也意味着您真的应该多写几个进口线。

正如 Peter Lawrey 所解释的,这一决定背后的原因源于 Java 普遍倾向于简单性。最佳做法通常是根本不使用导入通配符。

关于java - 为什么 Java 没有 "deep"通配符导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20576509/

相关文章:

java - 在 Vaadin 小部件集中编译类

java - 使用 BeanIO 将空白字符串解码为 null

Java:在单元测试中模拟 http/https 调用

Windows 上的 Python mecab 包导入错误 'not defined'

javascript - 将JSON导入到html(表格)过滤结果

css - 浏览器是否支持 CSS 中的星号 (*) 通配符?

java - Mockito:如何期望迭代器相等?

java - 根据 Javadoc 确定要导入什么包?

Makefile 和通配符

java - Java 上的通配符和子类型