-1

我正在使用play framework 1.2.x構建一個類。IllegalAccessException內部類的公共屬性

我有一個Controller類,其中包含一個非匿名(命名)私人內部類。

當我試圖通過其構造來訪問內部類的公共領域之一,我得到以下錯誤NonAnonymous Inner class access exception

上面的代碼

private static class FinancialTransactionJSONPacket implements JSONPacket{ 
    public final boolean isSuccess; 
    public final List<FinancialTransaction> financialTransactions; 
    public final OPERATIONS operation; 

    public FinancialTransactionJSONPacket(boolean isSuccess,FinancialTransaction financialTransaction,OPERATIONS operation) {   
     this(isSuccess,new ArrayList<FinancialTransaction>(),operation); 
/* Line 43 */ this.financialTransactions.add(financialTransaction);   
    } 
} 

我不明白的邏輯,怎麼這甚至有可能嗎?我在構造函數中訪問一個類的屬性訪問說明符如何起作用?

我試過搜索並找到了this article,但它涉及到匿名的內部類,建議的解決方案是將匿名內部類作爲命名類。

聲明

  • public final List<FinancialTransaction> financialTransactions;
  • private static class FinancialTransactionJSONPacket
+0

代碼難以辨認。請以格式文本的形式在此發佈。 – EJP

+0

好了添加了代碼作爲格式文本 – Gautam

+1

問題是什麼問題,爲什麼-1? – Gautam

回答

1

靜態類是私有的,所以只有外部類可以訪問它的成員,無論是公衆還是不行。

我看不到任何證據在您的不可識別的圖形中,訪問發生在靜態類自己的構造函數中。看起來,我更像是一個外部班級試圖訪問班級的內臟。

注意:這不是內部類,因爲它是靜態的。

+0

我無法讓頁面上的圖像更大,請點擊它,它會打開完整大小的圖像。 – Gautam

+0

@GautamK好的,我做到了。它只是證實了我的答案。你在這裏問錯了問題。 – EJP

+0

'financialTransactions'是內部類的'public'' final'屬性,我正在從內部類的構造函數中訪問它,現在出了什麼問題? – Gautam