gpt4 book ai didi

java - Java从HashSet中获取特定的类对象

转载 作者:行者123 更新时间:2023-11-29 10:03:19 25 4
gpt4 key购买 nike

我有一个 public Set<ProjectItem> projectItems = new HashSet<ProjectItem>();它可以包含两种类型的类( ProjectItem 是它们的抽象父类(super class))。这些类(class)是 DeliverableTask .我想获得 Deliverable 类的所有对象来自 Set .因此我这样写:

public Set<Deliverable> allDeliverables(){
Set<Deliverable> result = new HashSet<Deliverable>();
for(Iterator<ProjectItem> iter = projectItems.iterator(); iter.hasNext(); iter.next()){
if (iter.next().getClass() == Deliverable.class){
Deliverable del = (Deliverable) iter.next();
result.add(del);
}
}
return result;
}

但这是个异常(exception)——

Exception in thread "main" java.lang.ClassCastException: edu.Chryb.ProjectManagement.Task cannot be cast to edu.Chryb.ProjectManagement.Deliverable

符合:Deliverable del = (Deliverable) iter.next();

if 查询中是否有错误?

感谢您的帮助。

最佳答案

您的代码有点过时了。尝试:

for(Iterator<ProjectItem> iter = projectItems.iterator(); iter.hasNext(); iter.next()){
ProjectItem item = iter.next();
if (item.getClass() == Deliverable.class){
result.add((Deliverable)item);
}
}

关于java - Java从HashSet中获取特定的类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16863655/

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