In Eclipse 3.5, say I have a package structure like this:
tom.package1
tom.package1.packageA
tom.package1.packageB
if I right click on an the tom.package1 package and go to Refactor->Rename, an option “Rename subpackages” appears as a checkbox. If I select it, and then rename tom.package1 to tom.red my package structure ends up like this:
tom.red
tom.red.packageA
tom.red.packageB
Yet I hear that Java’s packages are not hierarchical. The Java Tutorials back that up (see the section on Apparent Hierarchies of Packages). It certainly seems like Eclipse is treating packages as hierarchical in this case.
I was curious why access specifiers couldn’t allow/restrict access to “sub-packages” in a previous question because I KNEW I had seen “sub-packages” referenced somewhere before.
So are Eclipse’s refactoring tools intentionally misleading impressionable young minds by furthering the “sub-package” myth? Or am I misinterpreting something here?
Java packages are not hierarchical in the sense that importing everything from package
Adoes not import everything from packageA.B.However, Java packages do correspond directly to the directory structure on the file system, and directories are hierarchical. So Eclipse is doing the correct thing – it is renaming the directory, which automatically changes the name of the parent directory of the renamed directory’s children (to state the very obvious).