2014-10-01 65 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