Lee*_*Lee 52 java alias types hashmap
让我说我有这个代码
Map<String, String> list = new HashMap<String, String>();
list.put("number1", "one");
list.put("number2", "two");
Run Code Online (Sandbox Code Playgroud)
我该如何制作一些"别名"类型
Map<String, String>
Run Code Online (Sandbox Code Playgroud)
更容易被重写的东西
// may be something like this
theNewType = HashMap<String, String>;
theNewType list = new theNewType();
list.put("number1", "one");
list.put("number2", "two");
Run Code Online (Sandbox Code Playgroud)
基本上我的问题是,如何为某些"类型"创建"别名",因此当需要更改整个程序代码时,我可以更容易编写和更容易.
谢谢,对不起,如果这是一个愚蠢的问题.我是Java的新手.
KAR*_*ván 47
Java中没有别名.你可以HashMap用你的类扩展类,如下所示:
public class TheNewType extends HashMap<String, String> {
// default constructor
public TheNewType() {
super();
}
// you need to implement the other constructors if you need
}
Run Code Online (Sandbox Code Playgroud)
但请记住,这将是一个类,它将与您键入的不同 HashMap<String, String>
Rom*_*om1 12
typedef在Java中没有等价物,并且对于别名类型没有共同的习惯用法.我想你可以做点什么
class StringMap extends HashMap<String, String> {}
Run Code Online (Sandbox Code Playgroud)
但这并不常见,对于程序维护者来说并不明显.
虽然Java不支持这一点,但您可以使用泛型技巧来模拟它.
class Test<I extends Integer> {
<L extends Long> void x(I i, L l) {
System.out.println(
i.intValue() + ", " +
l.longValue()
);
}
}
Run Code Online (Sandbox Code Playgroud)
资料来源:http://blog.jooq.org/2014/11/03/10-things-you-didnt-know-about-java/