gpt4 book ai didi

java - 如何组合这些 Set<?为我的 API 扩展 Vector> 过滤函数?

转载 作者:行者123 更新时间:2023-12-01 13:38:20 24 4
gpt4 key购买 nike

我有两个函数用于过滤两个不同的 集?扩展 Vector,但我不知道如何操作,或者是否可以结合此方法来获取扩展 Vector 的任何类型的对象。

BlockVector.classBaseBlock.class 均扩展 Vector.class

public static HashSet<BlockVector> filterBlockVectorSet(Set<BlockVector> set,
String playerName) {
HashSet<BlockVector> filtered = new HashSet<BlockVector>();
for (BlockVector v : set) {
if (v != null && Mongo.hasTrust(v.getX(), v.getZ(), playerName)) {
filtered.add(v);
}
}
return filtered;
}
public static HashSet<BaseBlock> filterBaseBlockSet(HashSet<BaseBlock> set,
String playerName) {
HashSet<BaseBlock> filtered = new HashSet<BaseBlock>();
for (BaseBlock v : set) {
if (v != null && Mongo.hasTrust(v.getX(), v.getZ(), playerName)) {
filtered.add(v);
}
}
return filtered;
}

这是我想出的东西,根据 eclipse 是有效的:

public static HashSet<? extends Vector> filterVectorSet(HashSet<? extends Vector> set,
String playerName) {
@SuppressWarnings("unchecked")
HashSet<? extends Vector> filtered = (HashSet<? extends Vector>) set.clone();
for (Vector v : set) {
if (v != null && Mongo.hasTrust(v.getX(), v.getZ(), playerName)) {
}else{
filtered.remove(v);
}
}
return filtered;
}

最佳答案

使其成为通用方法:

public static <T extends Vector> HashSet<T> filterVectorSet(HashSet<T> set,
String playerName) {
HashSet<T> filtered = new HashSet<T>();
for (T v : set) {
if (v != null && Mongo.hasTrust(v.getX(), v.getZ(), playerName)) {
filtered.add(v);
}
}
return filtered;
}

关于java - 如何组合这些 Set<?为我的 API 扩展 Vector> 过滤函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21065666/

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