sách gpt4 ăn đã đi

Java 泛型 : why can't inner interface implement from a (inner) superinterface?

In lại 作者:搜寻专家 更新时间:2023-10-31 19:47:45 32 4
mua khóa gpt4 giày nike

我有一个这样的界面:

public interface SuperInterface {
public interface SubInterface {
public void get();
}
//**More interfaces*/

}

我的工具包中的这个方法,它检索作为某个类实例的所有对象:

public static  ArrayList getSome(ArrayList objects, Class clazz) {
ArrayList result = new ArrayList();
for (Object o : objects)
if (clazz.isInstance(o))
result.add(clazz.cast(o));
trả về kết quả;
}

MyClass 不是很有趣,它是一个从 SuperInterface.SubInterface

实现的空类

这部分主要是:

ArrayList mObjects = new ArrayList() {
{
add(new MyClass()); //SuperInterface.SubInterface
add(Integer.valueOf(5));
add(new String("Hello"));
add(new Object());
}
};
ArrayList mSuperInterfaces = Toolkit.getSome(mObjects, SuperInterface.class); //returns a zero-sized list.
ArrayList mSubInterfaces = Toolkit.getSome(mObjects, SuperInterface.SubInterface.class); //returns a one-sized list

第一个方法调用没有像我希望的那样工作,第二个方法调用。是否有可能使第一个工作没有明确地将子接口(interface)放在不同的文件中并实现父类(super class)?因为显然子接口(interface)不是真正的子接口(interface),所以我尝试像这样创建接口(interface)类:

public class ClassWithInterfaces {
public interface Super { }
public interface Sub implements Super { /**...*/ }
}

但显然您不能在内部接口(interface)中使用thực hiện

Câu hỏi của tôi là:为什么会这样,是否有办法实现我想要实现的目标(一个文件中的内部接口(interface))?我不一定需要它,我只是想知道为什么它不能在内部接口(interface)中实现(但可以扩展内部类)。

câu trả lời hay nhất

But apparently you can't use thực hiện in an inner interface.

您正在寻找mở rộng thay vìthực hiện:

public class ClassWithInterfaces {
public interface Super { }
public interface Sub extends Super { /**...*/ }
}

这为我编译,我当然可以实现这两个接口(interface)。

由于扩展与实现之间似乎存在一些混淆,以下内容可能有助于澄清问题:

  • 一个接口(interface)Mở rộng另一个接口(interface)。
  • 一个类hoàn thành一个接口(interface)。
  • 一个类Mở rộng另一个类。

关于Java 泛型 : why can't inner interface implement from a (inner) superinterface?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13818592/

32 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress