为什么eclipse中的同一个类文件没有覆盖并显示已经定义的错误类型

时间:2014-07-25 17:44:14

标签: java eclipse

创建了一个" java"在eclipse中的类,当尝试再次在同一个包中使用相同的类名时,它会显示错误"类型已定义"。当在记事本中编写程序并在命令提示符下运行时,它会覆盖类而不显示错误,为什么不在使用eclipse时覆盖,以覆盖需要做的事情。

2 个答案:

答案 0 :(得分:1)

编辑:好的,通过评论我认为我们实际上已经解决了问题的根源。情况是:

  • 在Windows下编译
  • 同一个文件中有两个类,名称​​,除外
  • 由于Windows文件系统不区分大小写,命令行编译器没有注意到两个类文件会成为一个,但是Eclipse会这样做

以此为例:

class Foo {}
class foo {}

通过提及案例,Eclipse错误消息也非常清楚:

  

类文件冲突:存在一个具有不同大小写的资源:'/ Sandbox / bin /Foo.class'。

与我之前的回答一样,我的建议仍然是相同的不要这样做


早些时候回答......

我怀疑当你在不同的文件中使用相同的名字并从命令行编译时,你只指定了一个来编译 - 而Eclipse会尝试编译所有存在的类。如果您指定了这两个文件,则会出现错误:

例如:

X.java
class Foo {}

Y.java
class Foo {}

> javac X.java Y.java
Y.java:1: error: duplicate class: Foo
class Foo {}
^
1 error

基本上,不要这样做。重命名其中一个类,或删除其中一个文件。

答案 1 :(得分:0)

如果Eclipse允许您在同一个包中创建一个具有相同名称的类,它将覆盖包含原始类的现有文件。

Eclipse假定这样的尝试是您的错误。

您没有理由这样做,因为您只需编辑现有的课程。