调用java集合使用对象的接口而不是对象的类?

特雷弗·艾瑞德(Trevor Allred)

我想使用全部实现相同接口的对象集合来调用方法。这可能吗?

public class GenericsTest {
    public void main() {
        ArrayList<Strange> thisWorks = new ArrayList<>();
        isAllStrange(thisWorks);
        ArrayList<Person> thisDoesNot = new ArrayList<>();
        isAllStrange(thisDoesNot);
    }

    public boolean isAllStrange(ArrayList<Strange> strangeCollection) {
        for (Strange object : strangeCollection) {
            if (object.isStrange())
                return true;
        }
        return false;
    }

    public interface Strange {
        public boolean isStrange();
    }

    public class Person implements Strange {
        public boolean isStrange() {
            return true;
        }
    }
}
路易吉·门多萨(Luiggi Mendoza)

您可以使用<? extends Interface>表示法执行此操作

public boolean isAllStrange(List<? extends Strange> strangeCollection) {
    for (Strange object : strangeCollection) {
        if (object.isStrange())
            return true;
    }
    return false;
}

另外,请勿ArrayList直接使用,而应使用List更多内容:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java接口:根据对象类型调用实现类

实际对象而不是父类的调用方法

通过对象的Java接口方法调用

具有自己对象集合的Java类

使用类实现定义接口对象

使用对象实例而不是类的 Java 注释反射

被测试的类正在调用实际对象,而不是模拟对象

调用接口对象方法

调用对象时使用对象的成员而不是对象本身

多态-使用从接口继承而不是直接从接口继承的对象

为什么我应该在构造函数中使用对象的接口类型,而不是实际的类对象

对象集合的接口隔离原则

PyMongo的集合对象不是可调用错误

TypeScript:函数接口作为类中的可调用对象

声明要产生和使用的接口对象的集合

Java对象不是声明类的实例

Java反射:对象不是声明类的实例

如何使用被Java根类(即Object类)掩盖的对象调用原始类方法?

为什么在使用反射调用方法时出现“对象不是声明类的实例”的问题?

在Java中使用对象类?

在Typescript(Angular 5)与Java和C#中使用类vs接口创建对象

PDO提取类作为分组的集合对象,而不是数组中的单个对象

类与接口来描述对象

使用 lodash 将数据转换为对象属性而不是集合

使用集合时流星:“ TypeError:未定义不是对象”

如何在该接口类型的对象上调用实现接口的类中的方法?

如何基于Java中的接口对象获取实现类名称

Java中对clone(),对象类和Clonable接口的困惑

错误调用类对象?