[英]Classes in same package
我喜歡Intellij IDEA,但我已經堆積在Java導入的一個小問題上。 例如,有一個名為“example”的包,其中包含兩個不同的類:A.java和B.java。
我想從“B”級進入“A”級而無需進口。 像這樣:
A類:
package example;
public class A{ ... some stuff here ...}
B級:
package example;
public class B{
public static void main(String[] args){
A myVar = new A();
}
}
此代碼可能無效,但無關緊要。 使用IDE及其導入類的機制很麻煩。
所以,問題是我看不到來自B的A類。想法說'不能解決符號',但實際上我知道A類存在於包中。 下一個奇怪的是編譯器工作正常,沒有例外。 只是IDEA無法在同一個包中看到該類。
有人有什么想法嗎?
如果它們在同一個包中,您可以在B類中訪問A而無需導入:
package example;
public class B{
public static void main(String[] args){
A myA = new A();
}
}
也許這會幫助你,或者其他人使用IntelliJ獲得“無法解決符號”錯誤,但仍然可以編譯他們的代碼。
假設你有兩個buymypies寫的文件,標准的Java約定是兩個文件存在於源代碼區的Example目錄中,比如/myprojectpath/src/Example
。 但從技術上講,不需要在源目錄結構中反映包結構,這只是一種最佳實踐。
因此,如果您不模仿包結構,並且這兩個文件只在/myprojectpath/src
,IntelliJ將為您提供“無法解析符號”錯誤,因為它希望源代碼結構能夠反映包結構,但它會編譯好的。
我不確定這是不是你的問題,但是我確實使用了IntelliJ並且看過這個,所以這是值得關注的。
我有同樣的問題:在同一個包中有2個類,但當一個人試圖調用另一個時,Intellij用紅色表示它並且說無法解析符號'Classname',例如無法解析符號'LocalPreferencesStore'。
然后它想要在原位添加完全限定名稱 - 所以它清楚地知道路徑 - 所以為什么它不能只訪問該類?
該模塊仍然編譯和運行,所以它只是IDE表現得很奇怪 - 所有紅色都非常分散注意力,因為它實際上並不是一個錯誤,它只是IDEA投擲一個奇怪的搖擺。
這也是最近的。 兩個星期前,我根本沒有遇到這個問題,現在突然間它開始了。 當然,它可能很快就會自行消失,但它真的很煩人。
同樣的問題,我剛剛解決了。
我不知道你的文件夾結構。 但是,如果您的package example
是手動添加的。那就是問題所在。 包應該與文件夾結構相同,這意味着如果您希望將類文件存儲在package example
,則必須將java文件存儲在src的名為example的子文件夾中。
請確保A.java和B.java都在同一個包中。 由於兩者都在同一個包中,因此無需指定package example;
A類:
public class A{ ... some stuff here ...}
B級:
public class B{
public static void main(String[] args){
A myVar = new A();
}
}
你需要學習關於Java的基礎知識。
以下是我認為您正在嘗試的基本示例:
package Example;
public class A
{
String myVar;
public String getMyVar()
{
return myVar;
}
public void setMyVar(String myVar)
{
this.myVar = myVar;
}
}
您需要創建一個A的實例。
package Example;
public class B
{
/**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
A myA = new A();
myA.setMyVar("Hello World!");
System.out.println(myA.getMyVar);
}
}
查找java'getters'和'setters'。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.