由于有C和c++的背景,我发现明智地使用typedef非常有帮助。您是否知道在Java中实现类似功能的方法,无论是Java机制、模式,还是您使用过的其他有效方法?
当前回答
在某些情况下,绑定注释可能正是你想要的:
https://github.com/google/guice/wiki/BindingAnnotations
或者,如果您不想依赖于Guice,那么使用常规注释就可以了。
其他回答
Java有基本类型,对象和数组,仅此而已。没有定义类型。
在java 1.6中没有类型定义,你能做的是为你想要的做一个包装类,因为你不能子类化最终类(Integer, Double等)
在某些情况下,绑定注释可能正是你想要的:
https://github.com/google/guice/wiki/BindingAnnotations
或者,如果您不想依赖于Guice,那么使用常规注释就可以了。
也许这是另一种可能的替代:
@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;
推荐文章
- Java 8接口方法中不允许“同步”的原因是什么?
- 如何找到Java堆大小和内存使用(Linux)?
- 在哪里放置AutoMapper.CreateMaps?
- cplusplus.com给出的错误、误解或坏建议是什么?
- C多行宏:do/while(0) vs作用域块
- 找出质数最快的算法是什么?
- 使用Enum实现单例(Java)
- RabbitMQ与通道和连接之间的关系
- buildSessionFactory()配置方法在Hibernate中已弃用?
- Spring MVC -如何获得所有的请求参数在一个地图在Spring控制器?
- 如何在Java中按两个字段排序?
- 由Jon Skeet撰写的《Singleton》澄清
- 文件之间的差异。路径中的分隔符和斜杠
- time_t最终的类型定义是什么?
- 我需要显式处理负数或零时,总和平方数字?