【发布时间】:2017-12-26 08:53:59
【问题描述】:
我有几个不同的实体,每个实体都派生自 AbstractXYZEntity。所有实体都属于 XYZ 域,并且它们的 XYZId 是 Long 类型。
我想创建一个数据类型class XYZId extends Long,然后每个实体将如下所示 -
public class XYZEntityOne extends AbstractXYZEntity {
XYZId entityOneId;
}
问题是当我尝试创建 XYZId 时,编译器显示以下错误 -
java.lang.Long 中没有可用的默认构造函数
我知道默认构造函数在 Long 中不可用,因为它没有任何意义。在创建 Long 实例之前必须有一些数字。
但是为什么我不能创建一个从它扩展的数据类型,它也没有默认构造函数?
【问题讨论】:
-
Long 被宣布为“最终”。你不能延长它。
-
@Aominè 哦,我明白了。超级感谢。但是有没有办法在 Long 上创建一个表面的数据类型名称?
-
组合优于继承。
标签: java