1

这个我见多了

返回一个对象的方法,即

public Object getGroup(int groupPosition) 
{       
    return groups.get(groupPosition);
}

然后在调用这个函数时,将返回的对象强制转换为某个类,即

ExpandListGroup group = (ExpandListGroup) getGroup (groupPosition);

似乎是这样的情况,如果返回一个普通对象,您知道该对象的类(TestClass)并且您想为该返回的对象(Y)设置一个预先声明的对象(X),您需要转换相应的类以..的形式

TestClass X = (TestClass) returnsY();

它是否正确?将对象转换为类还有其他更深层次的含义/后果吗?

干杯

4

2 回答 2

3

所有引用都需要保存与引用或其子类型相同类型的对象。由于编译器只知道getGroup返回Object它不能让 Object 被分配给TestClass引用(Object 可能没有实现 TestClass 拥有的所有方法)。要解决该问题,您需要通过强制转换显式告诉编译器返回的对象getGroup也是TestClass类。

于 2012-12-17T11:44:14.560 回答
1

这样做是为了能够调用 TestClass 的方法。但是如果没有任何先前的检查(以查看该对象确实是 TestClass 的一个实例),您将得到一个 ClassCast 异常

于 2012-12-17T11:37:44.370 回答