我有兩個類class A
和class B
,當我試圖編譯這個程序時,我得到下面的編譯時錯誤。訪問修飾符錯誤 - 儘管類是公開的
類型A.C1是不可見的
package com.abc;
public class A {
static class C1 {
}
public static C1 member = new C1();
}
類B
在包中聲明cde
package com.cde;
import com.abc.A;
public class B {
public static void main(String[] args) {
System.out.println(A.member.hashCode());
System.out.println(((Object)Api.member).hashCode()) //Working fine
}
}
我的查詢是爲什麼編譯失敗,此錯誤作爲我的階級和變量C1 is public
PS:我不想更改API - 我知道將C1更改爲公開將修復我的問題
你的班級'C1' *不公* – EJP
在Eclipse中嘗試了相同的代碼,通過將'static class C1'聲明爲'public'解決了這個問題。 – procrastinator
@ EJP-你爲什麼要我改變API。我編輯了這個問題併發布了答案,請分享您的輸入 –