java中的类型同义词

java中的类型同义词,java,scala,types,Java,Scala,Types,Java中是否有类似于Scala中的以下定义的类型同义词定义(变通方法) type Row = List[Int]; 虽然可能不完全相同,但我考虑了以下代码(我用ArrayList替换了List,因为List是Java中的一个接口): 公共类行扩展了ArrayList{} 在java中有没有其他实现类型同义词机制的方法?不幸的是,没有。请看这个问题的老版本,用C++术语代替Scala术语。扩展是您所能做的最好的扩展。由于List(不是List)是一个接口,我认为您所写的可能足够好,但我不确

Java中是否有类似于Scala中的以下定义的类型同义词定义(变通方法)

type Row = List[Int];

虽然可能不完全相同,但我考虑了以下代码(我用ArrayList替换了List,因为List是Java中的一个接口):

公共类行扩展了ArrayList{}

在java中有没有其他实现类型同义词机制的方法?

不幸的是,没有。请看这个问题的老版本,用C++术语代替Scala术语。
扩展
是您所能做的最好的扩展。由于
List
(不是
List
)是一个接口,我认为您所写的可能足够好,但我不确定。如果使用具体的类型执行此操作,那么要获得尽可能接近等效的类型,还必须重新声明所有构造函数,并使它们都只是
super(参数)“在某些圈子里被认为是反模式”。。。就我个人而言,我希望看到具体的原因。但是,一般来说,一个类应该代表一个内聚的概念;IMHO说,创建一个类来重命名一个类型通常不是最好的用途。如果类表示一个概念,
ArrayList
将被视为该概念的实现,因此应该是一个私有字段而不是超类。另一方面,如果您有一个非常复杂的类型,如
ArrayList
,则类型重命名可能会增强可读性;我在实践中见过这种类型,多次拼写整个
ArrayList
类型名称会使代码混乱不堪。(但是考虑它所代表的概念,并提出一个代表这个概念的新类会更好。)此外,在Java中也有一些情况,数组和泛型一起使用受到限制,您可以在使用
List
会出错的上下文中使用
Row
。我认为这是重命名类型的合理原因。我建议尝试使用更好的委托/组合。我不想那样把东西堆在收藏品里。。。地图客户数据地图;地图未来地图。你最终会得到一张清单。。。
public class Row extends ArrayList<Integer>{}