由于有C和c++的背景,我发现明智地使用typedef非常有帮助。您是否知道在Java中实现类似功能的方法,无论是Java机制、模式,还是您使用过的其他有效方法?


当前回答

也许这是另一种可能的替代:

@Data
public class MyMap {
    @Delegate //lombok
    private HashMap<String, String> value;
}

其他回答

也许这是另一种可能的替代:

@Data
public class MyMap {
    @Delegate //lombok
    private HashMap<String, String> value;
}

正如其他回答中提到的,应该避免使用伪类型定义反模式。然而,typedef仍然是有用的,即使这不是实现它们的方法。您希望区分具有相同Java表示的不同抽象类型。你不希望混淆密码字符串和街道地址字符串,或者表示偏移量的整数和表示绝对值的整数。

检查器框架允许您以向后兼容的方式定义类型定义。I甚至适用于基本类,如int和final类,如String。它没有运行时开销,也不会破坏相等性测试。

检查器框架手册中的类型别名和类型defs描述了几种创建类型defs的方法,具体取决于您的需要。

Java有基本类型,对象和数组,仅此而已。没有定义类型。

如果这是你的意思,你可以简单地扩展你想要typedef的类,例如:

public class MyMap extends HashMap<String, String> {}

在java 1.6中没有类型定义,你能做的是为你想要的做一个包装类,因为你不能子类化最终类(Integer, Double等)