java - 传递实现接口(interface)的内部类

标签 java inheritance inner-classes

假设我有以下内容:

public class A {
  //stuff
  public class B implements I {}
}

public interface I {}

public class Foo {
  int bar(I i) {}
}

现在,当我尝试将 B 的实例传递给类 A 主体内的 Foo.bar() 时,为什么 Java 会给我一个“不适用于类型...”的构建错误?

内部类是否被认为是 I 的正确实现,因为它包含在顶级类中?

干杯,戴夫。

最佳答案

您需要类 A 的实例,然后才能创建对象 B 的实例(因为 B 是 A 的内部类)。 试试这个代码:

Foo foo = new Foo();
A a = new A();
B b = a.new B();
foo.bar(b);

关于java - 传递实现接口(interface)的内部类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6369847/

相关文章:

c++ - std 构造函数的调用是否需要限定?

java - 在内部类中执行main方法

java - 双括号初始化和 "kind of"静态匿名类

java - 在java面试中写一个co relation

java - JPA获取实体对象的id

javascript - "Extend"JS 数组就像传统的 OO 语言一样吗?

java - 用作接口(interface)替代的内部类示例

java - 强制调用 java 方法

java - 使用环境变量的参数运行 jar 应用程序的最佳方法

java - 是否可以隐藏或降低对 Java 中继承方法的访问?