2014-10-01 74 views
-1

我有两个顶级类;每一个有相同名称的内部类:Eclipse为内部类生成Java类文件名冲突

**A.java** 
    public class A 
    { 
    } 
    class TestCase 
    { 
    } 

    **B.java** 
    public class B 
    { 
    } 
    class TestCase 
    { 
    } 

我意料的是,我会风与四类文件,包括A $ TestCase.class和B $ TestCase.class,这是我所得到的,当我从命令行编译。然而,Eclipse只是创建TestCase.class,并且当我尝试编译B.java时声明“TestCase类型已经定义好了”。

是否有一个Eclipse选项,我可以设置产生(我相信是标准)A $ TestCase.class和B $ TestCase.class?

谢谢。

顺便说一句,我使用卢娜: 版本:月神发行(4.4.0) 版本ID:20140612-0600

+0

为什么不声明'TestCase'接口或抽象类并将它同时应用于'A'和'B'? – 2014-10-01 20:20:10

回答

0

它不为我做到这一点。它会创建一个A$TestCase.class和一个B$TestCase.class,因为它应该。

但是,这只是当他们实际上是内部类...在你的情况下,他们根本不是真正的内部类。

2

TestCase的两个版本都是顶级分类。您需要创建内部类

public class A { 
    class TestCase { 
    } 
} 
+0

好吧,它不是内部类(这是我有一段时间的另一个问题:它叫什么?)。不过,从命令行调用的Java编译器会生成A $ TestCase.class和B $ TestCase.class。我如何说服Eclipse做同样的事情? – 2014-10-01 21:28:33

+0

Eclipse将生成与命令行编译器相同的“美元文件” – Reimeus 2014-10-01 21:38:43

0

的TestCase不是一个内部类,你可能会想,这就是为什么当编码格式的代码是必不可少的。检查this