我正在使用play framework 1.2.x构建一个类。
我有一个Controller类,其中包含一个非匿名(命名)私有内部类。
当我尝试通过其构造函数访问内部类的一个公共字段时,我收到以下错误
以上代码
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 :(得分:1)
静态类是私有的,因此只有封闭类才能访问其成员,无论它们是否公开。
我无法在您的图形中看到任何证据表明访问是在静态类的自己的构造函数中发生的。它看起来当我对它时更像外部类试图访问类的内部。
NB这不是内部类,因为它是静态的。