如何拨打私人本地电话 class

How to call a private local class

所以,在一个更大的 class 中,有一个本地私有 class 稍后我需要将其用于方法,但我不知道如何访问它...

我无法更改的私有 class,因为它是练习的一部分,如下所示:

private class Counter 
 {
   String element;
   int frequency;             
   Counter (String element) 
   {
     this.element = element;
     frequency = 0;
   } 
   String element() {
       return this.element;
   }
 }

我需要实现的方法是将 Id 及其频率添加到频率列表 lf,如下所示:

private void update (String id, IList<Counter> lf) 
  {
      
  }

我正在尝试使用 IList 中的添加方法,但我不知道如何使用类型计数器,因为它是私有的 class,我无法访问它。

假设以下开始class (不,这不是解决方案)

public class Bigger {

    // inner class should not be changed
    private class Counter {
        String element;
        int frequency;             

        Counter (String element) {
            this.element = element;
            frequency = 0;
        } 

        String element() {
            return this.element;
        }
    }

    private void update (String id, IList<Counter> lf) {
        // TODO 
    }
}

要在 update 中访问 Counter,我们可以这样写:

public class Bigger {
    // ...
    private void update (String id, IList<Counter> lf) {
        Counter counter = new Counter(id);
        // eventually call counter.element()
        // or accessfields like counter.frequency = 1;
        // TODO 
    }
}

注意:Counter不是本地class,而是内部class(我假设是一个,因为本地classes不能声明 private).

从同一 containing class 中访问私有内部 classes 甚至此类 classes 的私有成员, JLS 6.6.1:

允许

Otherwise, the member or constructor is declared private. Access is permitted only when the access occurs from within the body of the top level class or interface that encloses the declaration of the member or constructor.