gpt4 book ai didi

java - Java 中的接口(interface)敏感操作

转载 作者:行者123 更新时间:2023-12-02 08:24:39 25 4
gpt4 key购买 nike

这是我的整体工作流程。首先创建一个接口(interface):

public interface foo {
void bar(Baz b);
}

然后,例如,创建一个具有不同对象的 vector ,这些对象都实现所述接口(interface):

myVector.add(new Ex);  //both Ex and Why implement foo.
myVector.add(new Why);

最后,使用界面:

for(int i=0; i<myVector.size(); i++) {
myVector.get(i).bar(b);
}

但是,由于显而易见的原因,这会产生编译时错误:

The method bar() is undefined for the type Object

选角不起作用,因为 Ex 和 Why 不相关。 Try-catch 转换为 Ex,然后为什么是一个可怕的解决方法。让 Ex 和 Why 都扩展 Bar_doers 听起来也不简洁,因为这会消除接口(interface)。

如何执行关心对象是否实现给定接口(interface)而不是对象是否属于给定类的操作?

最佳答案

您需要阅读 generics .

假设您使用的是标准 Java 容器,那么您的情况的解决方案是这样定义 myVector:

List<foo> myVector = new ArrayList<foo>();

关于java - Java 中的接口(interface)敏感操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14308527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com