我正在使用 Eclipse。
2 個檔案夾:src/test 和 src/main
兩者都有一個同名的包:Academy.
src/test中的Academy包有一個類名:Base.java
src/main中的Academy包有一個類名:HomePage.java
在HomePage.java類中,extends Base沒有檢測到其中的基類。這是HomePage.java中的代碼
package Academy;
import Academy.Base;
public class HomePage extends Base{
}
有一條紅線在Academy.Base和 上Base。它告訴要Base上課,但它已經在那里了。我試圖保存檔案。我也嘗試制作新專案。請幫忙。謝謝你。
這是參考影像:

uj5u.com熱心網友回復:
您正在使用 Maven 作為 Eclipse 專案的構建系統。
Maven 不允許主樹中的類依賴于測驗樹中的類。它通過告訴 Java 編譯器和運行時測驗樹中的類和資源不在主代碼的構建時和運行時類路徑中來防止這種情況。這就是您收到編譯錯誤的原因。
解決方案:
將Base.java類移動到“src/main/java/Academy”目錄中。
你評論說:
它只是 2 個同名的包,位于 2 個不同的檔案夾中。不管是不是測驗,它仍然應該繼承擴展。
對不起……但你錯了。將類放在哪棵樹中確實很重要。這是一個 Maven 專案,Maven 對這些事情有“意見”。有充分的理由,IMO。但無論哪種方式,Maven 的意見優先……如果您選擇使用 Maven。
還有其他幾個問題:
包名稱應以小寫字母開頭。例如閱讀這個。
解決方案:重命名
Academy為academy1。非代碼資源不應位于“java”目錄中。“java”源目錄中的非代碼資源不會在運行時類路徑中......并且不會包含在(常規)JAR 檔案中。
解決方案:創建一個“資源”目錄并將其放在那里。
import Academy.Base;是多余的。沒有必要在同一個包中匯入一個類。
1 - 替代解決方案:不要要求其他人處理您的代碼,或幫助您完成它。如果其他人不需要閱讀您的代碼,那么您的代碼是什么樣子只對您很重要。編譯器不在乎。只有人類會。
uj5u.com熱心網友回復:
import無關緊要。
您的 src/main/java/、src/main/resources/ 是為您的主要產品打包的,可能類似于 E2EProject1.jar。
您的 src/test/java/、src/test/resources/ 打包在單元測驗中,可能類似于 E2EProject1-test.jar。這些測驗類被保留在您的主產品之外,但在類路徑中將主產品作為依賴項。
所以它應該是這樣的:
- src/main/java/Base.java
- src/test/resources/data.properties(或 src/main/resources/)
將包命名為相同是為了能夠在 src/test/java 的單元測驗類中測驗(隱式匯入)src/main/java 的非公共、包私有類。
uj5u.com熱心網友回復:
按照以下步驟解決了上述錯誤:
右鍵單擊專案->構建路徑->配置構建路徑->源選項卡
然后在您的專案 src/main/java 下搜索選項卡搜索
并將“包含測驗源”從 No 更改為 Yes 并應用更改
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/446514.html
