-1

我正在使用 play framework 1.2.x 构建一个类。

我有一个 Controller 类,其中包含一个非匿名(命名)私有内部类。

当我尝试通过其构造函数访问内部类的公共字段之一时,出现以下错误NonAnonymous 内部类访问异常

上面的代码

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);           
    }
}

我不明白逻辑,这怎么可能?我正在从其构造函数中访问类的属性,访问说明符有什么关系?

我尝试搜索并找到了这篇文章,但它与匿名内部类有关,并且提出的解决方案是将匿名内部类作为命名类。

声明

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

1 回答 1

1

静态类是私有的,所以只有封闭类可以访问它的成员,无论它们是否是公共的。

我在您难以辨认的图形中看不到任何证据表明访问是在静态类自己的构造函数中发生的。当我凝视它时,它看起来更像是一个外部类正在尝试访问该类的内部结构。

注意 这不是内部类,因为它是静态的。

于 2012-05-22T06:37:50.360 回答