java - 为什么 Eclipse 中的同一个类文件不覆盖并显示已定义的错误类型

标签 java eclipse

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

最佳答案

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

  • Windows下编译
  • 同一个文件中有两个类具有相同的名称​​除了 case
  • 由于 Windows 文件系统不区分大小写,命令行编译器没有注意到这两个类文件将变成一个类文件,但 Eclipse 却注意到了

举个例子:

class Foo {}
class foo {}

Eclipse 错误消息也通过提及案例使这一点变得非常清楚:

Class file collision: A resource exists with a different case: '/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

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

关于java - 为什么 Eclipse 中的同一个类文件不覆盖并显示已定义的错误类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24961581/

相关文章:

java - Morphia 保存新实体而不是更新 _id

java - 单击固定选项卡时将不同的 fragment 加载到 Android 应用程序中

java - 如何获取eclipse项目依赖?

java - 如何找出 Java 中 JSP 标签的名称?

java - 如何在 JPA 中使用额外的 where 子句限制 ManyToMany

java - 获取 FLabel 或图像以通过键盘移动

java -//格式化java源码注释--------------------------------

java - 尝试将项目添加到tomcat时抛出错误

java - 如何在 JLabel 上绘图?

java - 如何让 ScrolledComposite 中包含 FlowLayout 的 Composite 垂直而不是水平增长?