类型A已定义错误

时间:2013-10-26 19:42:26

标签: java eclipse

我试图寻找解决方案,但我发现我不知道如何在这种情况下应用。请帮我纠正我的代码。

package Exercise;

public class Ex11_11 {
public static void main(String[] args) {
    A a = new A(3);
    }
}

class A extends B { // type A is already defined, A has a red underline
    public A (int t) {
    System.out.println("A's constructor is invoked");
    }
}

class B { // type B is already defined, B has a red underline
    public B () {
        System.out.println("B's constructor is invoked");
    }  
}

11 个答案:

答案 0 :(得分:28)

Eclipse有时会感到困惑。如果您从Clean菜单中选择Project,则可能会修复这些错误。

答案 1 :(得分:6)

嗯,首先要检查的是你的文件或同一个包中是否有另一个名为A的类。

答案 2 :(得分:2)

我遇到了同样的问题。我的计算机由I.T远程重启,Eclipse没有正常关闭。我注意到我的项目中有一个额外的java文件,我没有添加。删除它,现在错误消失了。

答案 3 :(得分:1)

检查是否保存了所有类文件。我曾经有过几次这个问题:我在一个类文件中定义一个类,然后将它移到它自己的类中。 Java变得混乱,因为它从旧版本的原始文件中读取。一旦你用它中缺少的类定义保存它并在新文件中定义类,一切都应该没问题。

答案 4 :(得分:1)

在您的项目中,您可能拥有具有相同包结构和相同类名的测试目录(例如,复制而不将类名更改为* Test)。

答案 5 :(得分:1)

在项目中 - >清洁,选择"清除下面选择的项目",选择我的项目并检查"立即开始构建"使用"仅构建选定的项目"。

然后问题就会解决。

答案 6 :(得分:0)

这样做的主要原因是在同一个包中的某个地方你已经定义了一个名为A的类。 导致类型 A 已定义错误。

检查是否有任何子类或内部类名为 A

答案 7 :(得分:0)

如果以上解决方案均不适合您,则可能会弄乱“构建路径”。将src添加到构建路径时,请确保src不在排除列表中。将*(通配符)放在包含列表中,而不将任何内容都放在排除列表中。

答案 8 :(得分:0)

确定

  

项目|自动构建

已检查。

答案 9 :(得分:0)

您是否已将另一个项目添加到构建路径?

我的开发环境(Eclipse)遇到了同样的问题。
我的Maven应用程序使用了其他应用程序。在Eclipse上,这些项目只是添加到构建路径中。其中之一具有相同的包结构和类文件名。 Eclipse最终认为,由于软件包的结构和文件名相同,因此物理上不同的两个文件都位于同一目录中。
例如,假设有两个文件如下:

/Users/uname/home/proj1/com/app/proj/main/java/util/file1.java

/Users/uname/home/proj2/com/app/proj/main/java/util/file1.java

并假设两者都具有软件包名称

com.app.define.proj.util

如果将一个项目添加到另一个项目,则Eclipse会将两个文件都放在同一位置。
我通过从使用的应用程序中创建一个JAR文件,将其添加到构建路径并从构建路径中删除Eclipse项目来解决。

答案 10 :(得分:0)

将类名A重命名为Aa或其他名称,然后尝试运行。