![](/img/trans.png)
[英]java.lang.ClassCastException: org.apache.camel.builder.ValueBuilder cannot be cast to java.lang.String
[英]java.lang.ClassCastException: java.lang.String cannot be cast to org.myapp.ui.MyClass
我是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
的某些组ExpandableListView
了几次之后。 所以有几次它起作用,然后突然不起作用,我得到了这个异常。
java.lang.ClassCastException:无法将java.lang.String强制转换为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。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.