JavaCompiler没有捕获重新定义Java类的错误。

时间:2017-02-15 13:14:55

标签: java package compilationunit

在我的Java学习期间,我尝试了这段编译和编写的代码。跑得很成功。任何人都可以提供一个解释,为什么编译器没有生成任何错误?我导入了完整的包,其中包括java.util> Scanner,所以不应该有一个错误,扫描仪已经在util包&我想在这里重新定义它?

import java.util.*;

class Scanner
{
    public static void main(String... args)
    {
        Scanner c = new Scanner();
    }
}

我的Java基础知识不是很清楚,如果这看起来完全是一个noob的问题,并且在这个论坛上没有任何问题,所以我想更好地问它。

1 个答案:

答案 0 :(得分:-1)

一个类不仅由它的名称定义,而且还由它的包定义。

在您的情况下,您有两个不同的类:

  • java.util.Scanner中
  • your.package.Scanner(抱歉,您的包裹行不属于您的代码)

对于编译器,这些类是不同的,这就是没有出现编译错误的原因。

有关代码示例和可能的用例的更长答案,请查看此处:Importing two classes with same name. How to handle?