Java 哗众取宠。也许应该是这样“重构工具是不是在假装语言中的关系并不存在?”Tom:首先,我说Eclipse在这种情况下不可能违反JLS。重构工具与项目的编译或运行时行为无关。这就像创建一个bash脚本来执行同样的操作,并说这违反了JLS。第二,当默认包重命名没

Java 哗众取宠。也许应该是这样“重构工具是不是在假装语言中的关系并不存在?”Tom:首先,我说Eclipse在这种情况下不可能违反JLS。重构工具与项目的编译或运行时行为无关。这就像创建一个bash脚本来执行同样的操作,并说这违反了JLS。第二,当默认包重命名没,java,eclipse,Java,Eclipse,哗众取宠。也许应该是这样“重构工具是不是在假装语言中的关系并不存在?”Tom:首先,我说Eclipse在这种情况下不可能违反JLS。重构工具与项目的编译或运行时行为无关。这就像创建一个bash脚本来执行同样的操作,并说这违反了JLS。第二,当默认包重命名没有重命名子包时,我不明白您如何说Eclipse似乎总是将它们视为相关的。这整个问题是因为它们使用术语“子包”吗?因此包是非层次的,但它们通过添加一个明确表示层次的前缀来正式引用。太棒了@汤姆·特雷桑斯基:你仍然没有抓住重点。层次结构位于目录结构


哗众取宠。也许应该是这样“重构工具是不是在假装语言中的关系并不存在?”Tom:首先,我说Eclipse在这种情况下不可能违反JLS。重构工具与项目的编译或运行时行为无关。这就像创建一个bash脚本来执行同样的操作,并说这违反了JLS。第二,当默认包重命名没有重命名子包时,我不明白您如何说Eclipse似乎总是将它们视为相关的。这整个问题是因为它们使用术语“子包”吗?因此包是非层次的,但它们通过添加一个明确表示层次的前缀来正式引用。太棒了@汤姆·特雷桑斯基:你仍然没有抓住重点。层次结构位于目录结构中,java包与之直接对应。当我们说Java包是非层次的时,我们指的是一件非常具体的事情:导入包中的所有内容不会导入其子包中的任何内容。如果你想通过不使用“非层次化”这个术语来消除两者之间的歧义,那就好了。@Tom:你似乎认为教程是绝对正确的(它们不是;事实上它们经常是错误的),而且在不同上下文中使用的同一术语指的是同一件事。JLS第7章中关于包的第二段说,
包的命名结构是分层的
。在这种情况下,它们是分等级的。在导入上下文中,它们不是分层的,
import java.awt.*
不导入
java.awt.image.*
。上下文,上下文,上下文!
 tom.package1
 tom.package1.packageA
 tom.package1.packageB
tom.red
tom.red.packageA
tom.red.packageB
tom.package1.packageA
tom.package2.packageB
tom.package3.packageC
java -ea:com.wombat.fruitbat... <Main Class>