gpt4 book ai didi

java.lang.ClassCastException : java. lang.String 无法转换为 org.myapp.ui.MyClass

转载 作者:行者123 更新时间:2023-12-01 11:22:53 26 4
gpt4 key购买 nike

我是android开发新手,遇到了一个无法解决的问题。我使用自定义 Adapter 实现了 ExpandableListView。我有 5 个组,每个组有 1 个子项目。每个组元素的数据类型为:org.myapp.ui.MyClass

我现在尝试在展开每个组元素时获取它的 MyClass 对象。为此,我使用 setOnGroupExpandListener:

 lv.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() { 
public void onGroupExpand (int groupPosition){

MyClass selected = (MyClass)lv.getAdapter().getItem(groupPosition);
servId = selected.getServiceId();

// Do more stuff here
}
});

当我现在在模拟器中测试此代码时,我收到以下 ClassCastException,但只有在扩展 ExpandableListView 中的某些组几次之后才出现。所以有几次它起作用了,然后突然它不起作用了,我得到了这个异常。

java.lang.ClassCastException: java.lang.String cannot be cast to org.myapp.ui.MyClass

在此代码行中

MyClass selected = (MyClass)lv.getAdapter().getItem(groupPosition);

如果有人知道为什么会发生这种情况(但只有在 ExpandableListView 中展开几个组之后),请告诉我。

最佳答案

摘自oracle文档,抛出ClassCastException表示代码试图将一个对象转换为它不是实例的子类。例如,以下代码生成 ClassCastException:

 Object x = new Integer(0);
System.out.println((String)x);

在您的情况下,您正在尝试将字符串转换为自定义类,但该类永远不会通过,因为行 lv.getAdapter().getItem(groupPosition)给出 String 而不是 MyClass Object。

关于java.lang.ClassCastException : java. lang.String 无法转换为 org.myapp.ui.MyClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31045589/

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