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


当前回答

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

其他回答

Kotlin支持类型别名https://kotlinlang.org/docs/reference/type-aliases.html。可以重命名类型和函数类型。

您可以使用Enum,尽管它在语义上与typedef略有不同,因为它只允许一组受限制的值。另一个可能的解决方案是命名包装器类,例如。

public class Apple {
      public Apple(Integer i){this.i=i; }
}

但这似乎更笨拙,特别是考虑到从代码中无法清楚地看出类除了作为别名之外没有其他函数。

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

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

在某些情况下,绑定注释可能正是你想要的:

https://github.com/google/guice/wiki/BindingAnnotations

或者,如果您不想依赖于Guice,那么使用常规注释就可以了。

在Java中不需要类型定义。除了原语外,所有东西都是Object。没有指针,只有引用。通常使用typedef的场景是创建对象的实例。