由于有C和c++的背景,我发现明智地使用typedef非常有帮助。您是否知道在Java中实现类似功能的方法,无论是Java机制、模式,还是您使用过的其他有效方法?
当前回答
Kotlin支持类型别名https://kotlinlang.org/docs/reference/type-aliases.html。可以重命名类型和函数类型。
其他回答
也许这是另一种可能的替代:
@Data
public class MyMap {
@Delegate //lombok
private HashMap<String, String> value;
}
在Java中不需要类型定义。除了原语外,所有东西都是Object。没有指针,只有引用。通常使用typedef的场景是创建对象的实例。
实际上,typedef传递到Javaland的唯一用途是别名——也就是说,为同一个类提供多个名称。也就是说,你有一个类“a”,你希望“B”指的是同一个东西。在c++中,你会做"typedef B A;"
不幸的是,他们只是不支持它。然而,如果你控制了所有涉及到的类型,你就可以在库级别上做一个讨厌的黑客——你要么从a扩展B,要么让B实现a。
在某些情况下,绑定注释可能正是你想要的:
https://github.com/google/guice/wiki/BindingAnnotations
或者,如果您不想依赖于Guice,那么使用常规注释就可以了。
Java有基本类型,对象和数组,仅此而已。没有定义类型。
推荐文章
- 为什么我的程序不能在Windows 7下用法语编译?
- 到底是什么导致了堆栈溢出错误?
- 为什么Android工作室说“等待调试器”如果我不调试?
- 在参数数量上重载宏
- 如何获取变量的类型?
- Java:路径vs文件
- 什么是奇怪的重复模板模式(CRTP)?
- ExecutorService,如何等待所有任务完成
- 连接两个向量的最佳方法是什么?
- Maven依赖Servlet 3.0 API?
- 如何在IntelliJ IDEA中添加目录到应用程序运行概要文件中的类路径?
- getter和setter是糟糕的设计吗?相互矛盾的建议
- 在c++中,是通过值传递更好,还是通过引用到const传递更好?
- Android room persistent: AppDatabase_Impl不存在
- Java的String[]在Kotlin中等价于什么?