java - Android - 为什么要将对象转换为类?

标签 java android class object casting

我经常看到这个,

返回对象的方法,即

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

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

ExpandListGroup group = (ExpandListGroup) getGroup (groupPosition);

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

TestClass X = (TestClass) returnsY();

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

干杯

最佳答案

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

关于java - Android - 为什么要将对象转换为类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13913304/

相关文章:

java - 使用构建阶段来验证 XML (Maven)

java - 生成 WSDL 文件

c# - 超过 16 字节的结构的最佳解决方案

java - 使用通过 LoaderManager 加载的数据动态更新 ListView

java - 为什么我们不能让当前类引用持有父类(super class)对象?

Objective-C,成员变量和类变量

java - hibernate 注释编译错误

java - 将RelativeLayout分为3个相同的部分

java - Admob 横幅位置错误

android - onTouch 事件无法正常工作