类名和导入的类名冲突如何让编译器警告

是由这个问题https://segmentfault.com/q/1010000005725685引出的一个问题。

// Calendar.java
import java.text.DateFormatSymbols;
import java.util.*;

public class Calendar {
  public static void main(String[] args) {
    GregorianCalendar d = new GregorianCalendar();
  }
}

javac -Xlint Calendar.java编译时并没有报warning,是否有什么选项让编译器报warning。

阅读 4.9k
2 个回答

不会有警告的,你想多了,因为你的Calendar的命名空间(就是package)肯定不是java.util吧?

所以啊,编译器识别冲突总得是根据“命名空间 + 类名”,所以除非你的把package也写成java.util。否则让编译器报错/警告,我觉得有点强人所难!

我上午才学java,被你们弄懵逼了。我感觉我没想这么复杂,就是简单的把类名和文件名写错了。目前这个状态不报warning也正常,毕竟这个类的命名空间和java calendar的命名空间是不一样的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题