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


当前回答

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

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

其他回答

Typedef允许将项隐式分配给它们不是的类型。有些人试图通过扩展来解决这个问题;请阅读IBM关于为什么这是一个坏主意的解释。

编辑:虽然强类型推断是一个有用的东西,但我不认为(希望我们不会)看到typedef在托管语言中出现它丑陋的头(永远不会?)

编辑2:在c#中,你可以在源文件的顶部使用这样的using语句。这样你就不用做第二项了。只有在作用域引入两个类型之间的名称冲突时才会看到名称更改。重命名仅限于一个文件,除此之外,使用它的每个变量/参数类型都知道其全名。

using Path = System.IO.Path;
using System.IO;

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

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

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

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

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

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