Java 内部/匿名类

Java inner/anon classes

提问人:acidic231 提问时间:5/23/2023 更新时间:5/23/2023 访问量:37

问:

我被困在这个问题上,我们需要通过 A 实例化 C 类

class A{
  static class B{}
  static class C{ B b;
    C(B b){this.b=b;}
    int foo(){return 42;}
  }
}
public class Exercise{

  public static void main(String [] arg){
    assert ([???].foo()==42);
  }
}     

显然,我们需要在 A 类中实例化 C 类,但是我尝试这样做 类似的东西和其他一些变化,但我似乎想不通,有人有什么建议吗?A.C(new B b)

Java 内部 匿名类

评论


答:

2赞 Reilas 5/23/2023 #1

您需要一个 的实例来实例化BC

A.B b = new A.B();
A.C c = new A.C(b);
assert c.foo() == 42;

或者,简化。

assert new A.C(new A.B()).foo() == 42;

如果类不包含构造函数,则推断为空构造函数。