投射没有关系的对象

时间:2016-02-01 08:50:05

标签: java casting

很抱歉,如果这个问题太具体,但我似乎无法想出用抽象的方式解释它的正确术语。

我有两个同一个实体的课程。一个用于将其保存到数据库

public class XDb extends SugarRecord {

    private float ampX;
    private float ampY;
}

和另一个Api电话:

public class XApi extends ApiFunctionality {

    private float ampX;
    private float ampY;
}

我首先将对象保存在本地数据库中,然后从数据库中读取并将数据上传到服务器。 我希望能够做到这样的事情:

XApi xApi = (XApi) xDb;

java中是否有支持此功能的功能? 如果我仍然含糊不清,请道歉。

3 个答案:

答案 0 :(得分:2)

总之,没有。你不能。他们必须有一些关系。例如,它们都可以实现通用接口。

答案 1 :(得分:1)

它们必须属于同一层次结构树, 如果XApi继承(扩展)XDb,你将能够施放。

答案 2 :(得分:1)

你不能施放它们,因为类型是不相关的。

假设你有:

  • 要转换的类的适当访问者(例如getAmpX()getAmpY(),或ampXampY的非私有可见性 - 不推荐) >来自(在您的示例中为XDb);
  • 要将转换为(在示例中为XApi)的类上的相应构造函数

然后你可以使用前者的属性简单地构造后者的实例:

XApi xApi = new XApi(xDb.getAmpX(), xDb.getAmpY());