无法使用List强制转换类

时间:2016-05-04 23:19:10

标签: java arrays dictionary netbeans casting

我在尝试方法时遇到了强制转换错误。 我无法弄清楚这里的实际问题。

(列表)成员 - >此行正在生成强制转换错误,因为类无法转换为List。

如何更新此问题?

java.lang.ClassCastException:com.test.Member无法强制转换为java.util.List     在com.test.impl.Main.splitMembersByState

  protected Map< String, List< Member>> splitMembersByState(List< Member> validMembers) {
    // TODO

    Map< String, List< Member>> membersSplitByState = new HashMap<String, List<Member>>();
    List<Member> tempList = validMembers;

    for (Member member : validMembers) {
        membersSplitByState.put(member.getState(), (List<Member>) member);

    }

    return membersSplitByState;
  }

谢谢。

2 个答案:

答案 0 :(得分:1)

membersSplitByState是String - &gt;列表,你试图在其中加入一个成员(成员)。

在这里,您希望将您的成员放在成员列表中,而不是直接放在地图中。这样的事情:

    Map< String, List< Member>> membersSplitByState = new HashMap<String, List<Member>>();
    List<Member> tempList = validMembers;

    for (Member member : validMembers) {
        List<Member> membersWithState;
        if (membersSplitByState.containsKey(member.getState()) {
           membersWithState = membersSplitByState.get(member.getState());
        } else {
           membersWithState = new ArrayList<Member>();
           membersSplitByState.put(member.getState(), membersWithState);
        }
        membersWithState.add(member);
    }
    return membersSplitByState;

答案 1 :(得分:1)

您不能将对象(在您的情况下为元素)转换为Object列表,因此也是异常。 尝试使用以下代码替换代码中的for循环:

search