简体   繁体   English

Eclipse中未找到源错误(Java)

[英]Source not found error in Eclipse (Java)

I have thhis few lines of code: 我有几行代码:

Set<Group> setofAllGroups;
setofAllGroups = new TreeSet<Group>();
Group[] allGroupsArray = (Group[]) setofAllGroups.toArray();

the last line causes a runtime error, in debug mode I get "Source not found" 最后一行导致运行时错误,在调试模式下我得到“Source not found”

the code for the class Group: 类组的代码:

public class Group 
{
String groupName;
Set<Recipient> groupMembers;

public Group()
{
    groupName = "";
    groupMembers = new TreeSet<Recipient>();
}

public void setGroupName(String name)
{
    groupName = name;
    return;
}

public void addMember(Recipient toAdd)
{
    groupMembers.add(toAdd);
    return;
}
public void addMember(String name, String phoneNumber)
{
    Recipient toAdd = new Recipient(name, phoneNumber);
    groupMembers.add(toAdd);
    return;
}
public void removeMember(Recipient toRemove)
{
    groupMembers.remove(toRemove);
}
public void removeMember(String name, String phoneNumber)
{
    Recipient toRemove = new Recipient(name, phoneNumber);
    groupMembers.remove(toRemove);
}
public void removeAllGroupMembers()
{
    groupMembers.clear();
}

}

What is the reason for the runtime error ? 运行时错误的原因是什么?

Quick answer is that you cannot cast like that: 快速回答是你不能这样投:

Group[] allGroupsArray = (Group[]) setofAllGroups.toArray();

Instead you have to use this: 相反,你必须使用这个:

Group[] allGroupsArray = setofAllGroups.toArray(
     new Group[setofAllGroups.size()]);

That's because toArray() returns Object[] and after that you try to cast Object[] to Group[]. 那是因为toArray()返回Object [],之后你尝试将Object []转换为Group []。 This fails. 这失败了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM