gpt4 book ai didi

java - 集合的通用类型子集合

转载 作者:行者123 更新时间:2023-12-01 09:45:00 25 4
gpt4 key购买 nike

我想编写一个辅助方法,该方法将返回对象集合的通用类型子集合,但我需要一些帮助!

这是我想要的方法:

    public static <T> Collection<T> getTypeFilteredSubCollection(Collection<Object> objects) {
Collection<T> typeFilteredCollection = new ArrayList<T>();
for(Object object : objects) {
if(object instanceof T) {
typeFilteredCollection.add((T)object);
}
}
return typeFilteredCollection;
}

明显的问题是泛型类型会在运行时消失,但你明白我想要做什么。

有人知道如何实现这样的事情吗?

最佳答案

您必须将 T 类与其一起传递并使用 Class::isAssignableFrom :

public static <T> Collection<T> getTypeFilteredSubCollection(Collection<Object> objects, Class<T> clazz) {
Collection<T> typeFilteredCollection = new ArrayList<T>();
for(Object object : objects) {
if(clazz.isInstance(object)) {
typeFilteredCollection.add((T)object);
}
}
return typeFilteredCollection;
}

关于java - 集合的通用类型子集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38134174/

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