2014-12-07 64 views
0

我是一位經驗豐富的程序員,但是對於Java來說是新手。我已經定義了一個枚舉,但在嘗試使用它時卻得到「Symbol not found」。我看了很多答案,他們都指出了命名衝突。我已經重命名了我的枚舉,但仍然沒有運氣。經過進一步的研究,我在Oracle網站上找到了以下示例。 (請注意,我打破了命名約定,以確保「節」並沒有提出一個命名衝突)代碼未找到使用枚舉

public enum Day__ { 
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, 
    THURSDAY, FRIDAY, SATURDAY 
} 

正如例子表明,我試圖以下列方式使用它:

public class EnumTest { 
    Day__ day; 

    public EnumTest(Day__ day) { 
     this.day = day; 
    } 
} 

然而,在編譯(使用的是IntelliJ)我得到以下幾點:

Error:(7, 5) java: cannot find symbol 
    symbol: class Day__ 
    location: class com.islbahamas.firstcontact.client.EnumTest 

繼喬恩和亞諾什的意見(我真的appreicate),我創建了一個全新的項目(TestProject)。在路徑C:\開發\ TestProject \ SRC \ COM \ islbahamas \ completelyNewPackageInNewProject我有以下兩個文件: Day_OnlyClassDefinedWithThisName.java TestEnum.java

Day_OnlyClassDefinedWithThisName.java看起來是這樣的:

package com.islbahamas.completelyNewPackageInNewProject; 

/** 
* Created by Clyde on 12/7/2014. 
*/ 
public enum Day_OnlyClassDefinedWithThisName { 
     SUNDAY, MONDAY, TUESDAY, WEDNESDAY, 
       THURSDAY, FRIDAY, SATURDAY 
    } 

和TestEnum.java看起來是這樣的:

package com.islbahamas.completelyNewPackageInNewProject; 

/** 
* Created by Clyde on 12/7/2014. 
*/ 
public class TestEnum { 
    Day_OnlyClassDefinedWithThisName day; 

    public TestEnum(Day_OnlyClassDefinedWithThisName day) { 
     this.day = day; 
    } 
} 

音符......同一個包兩個

錯誤: 錯誤:(7,5)的java:無法找到符號 符號:類Day_OnlyClassDefinedWithThisName 位置:類com.islbahamas.completelyNewPackageInNewProject.TestEnum

即使有進口(儘管不必要)語句包括(如下所示),我也有同樣的錯誤

package com.islbahamas.completelyNewPackageInNewProject; 

import com.islbahamas.completelyNewPackageInNewProject.Day_OnlyClassDefinedWithThisName; 
/** 
* Created by Clyde on 12/7/2014. 
*/ 
public class TestEnum { 
    Day_OnlyClassDefinedWithThisName day; 

    public TestEnum(Day_OnlyClassDefinedWithThisName day) { 
     this.day = day; 
    } 
} 
+0

那麼聲明'Day__'包是什麼? – 2014-12-07 12:42:13

+0

Jon Day__在包com.islbahamas.firstcontact.client中聲明; – ClydeSymonette 2014-12-07 12:48:48

+1

它是否在您嘗試編譯測試代碼的類路徑中? (你沒有告訴我們關於你如何編譯的任何信息) – 2014-12-07 12:49:23

回答

0

如果包含您的枚舉和測試類,Day__.javaEnumTest.java的文件是相同的目錄中,那麼這應該工作。如果它們是在不同的目錄, 然後EnumTest你需要添加一個import聲明靠近頂部的Day__完整的包名稱,例如:

import path.to.Day__; 

從很明顯的錯誤消息EnumTest是在包com.islbahamas.firstcontact.client,並且由於編譯器在同一個包中找不到Day__,這意味着Day__.java文件必須位於其他位置。

+0

Janos。我已經嘗試過了:)不起作用。我將修改併發布修改後的代碼 – ClydeSymonette 2014-12-07 13:07:25

+0

好吧,問題很簡單:EnumTest類不知道在哪裏找到Day__。你需要看看你的項目,觀察你的文件在哪裏,並添加一個適當的'import'語句。如果您仍然看不到問題,請在您的文章中添加文件的目錄佈局,例如Linux中的'tree'命令。 – janos 2014-12-07 13:22:54

+0

@ClydeSymonette,這是怎麼回事? – janos 2014-12-15 14:35:16