我看到了很多,
返回对象的方法,即
public Object getGroup(int groupPosition)
{
return groups.get(groupPosition);
}
然后,当调用此函数时,返回的对象将被转换为某个类,即
ExpandListGroup group = (ExpandListGroup) getGroup (groupPosition);
似乎是这样的情况:如果返回一个普通对象,你知道该对象的类(TestClass),并且你想要将一个预先声明的对象(X)设置为该返回的对象(Y),你需要强制转换形式为...的对应类。
TestClass X = (TestClass) returnsY();
这是对的吗?将对象作为一个类投射是否还有其他更深层次的意义/后果?
干杯
答案 0 :(得分:3)
所有引用都需要保存与引用或其子类型相同类型的对象。由于编译器只知道getGroup
返回Object
,因此不能将Object分配给TestClass
引用(Object可能没有实现TestClass所有的所有方法)。要解决这个问题,你需要通过强制转换它来明确告诉编译器getGroup
返回的对象也是TestClass
类。
答案 1 :(得分:1)
这样做是为了能够调用TestClass的方法。但是如果没有任何先前的检查(看到该对象实际上是TestClass的一个实例),你将得到一个ClassCast异常