【发布时间】:2011-01-26 21:45:01
【问题描述】:
以下陈述似乎令人不安:
robert@neghvar:~/tmp> cat org/foo/Bar.java
public class Bar {
}
robert@neghvar:~/tmp> javac org/foo/Bar.java
robert@neghvar:~/tmp> javap org.foo.Bar
Compiled from "Bar.java"
public class org.something.Bar extends java.lang.Object{
public org.something.Bar();
}
虽然 Bar 类文件在org/foo 目录下并声明了org.something 包,但编译器并没有报错。我的印象是 java 要求遵循包名称的目录层次结构。我弄错了吗?如果是这样,混淆包名的后果是什么?
【问题讨论】: