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



在我的Java学习过程中,我尝试了这段代码,并成功编译并运行。任何人都可以解释为什么编译器没有产生任何错误吗?我也导入了包括java.util>Scanner的完整软件包,所以不应该有错误,扫描仪已经在util包中定义并且我试图在这里重新定义它吗?

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

我的 Java 基础知识不是很清楚,所以如果这看起来完全是一个菜鸟的问题,并且在这个论坛上没有类似的问题,所以我想最好问它。

类不仅

由其名称定义,还由其包定义。

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

  • java.util.Scanner
  • your.package.Scanner (抱歉,您的包行不是代码的一部分(

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

有关代码示例和可能用例的较长答案,请查看此处:导入两个具有相同名称的类。如何处理?

相关内容

最新更新