Java 1个变量的2种不同可能类型
我想在Java中做到这一点:Java 1个变量的2种不同可能类型,java,variables,types,Java,Variables,Types,我想在Java中做到这一点: boolean b; if (b) { //I want that a variable "imp" be of type HashMap } else { //I whant that a variable "imp" be of type LinkedHashMap } HashMap和LinkedHashMap是接口映射的实现 我想使用一个元组(HashMap,LinkedHashMap),但这会弄脏太多的代码。只需将imp声明为Map
boolean b;
if (b) {
//I want that a variable "imp" be of type HashMap
} else {
//I whant that a variable "imp" be of type LinkedHashMap
}
HashMap
和LinkedHashMap
是接口映射的实现
我想使用一个元组
(HashMap,LinkedHashMap)
,但这会弄脏太多的代码。只需将imp
声明为Map
,用所需的类型参数对其进行参数化,并用具体类型分配它
HashMap
和LinkedHashMap
都是Map
s,可以这样引用
Map<MyKey, MyValue> imp = null;
if (b) {
imp = new HashMap<MyKey, MyValue>();
} else {
imp = new LinkedHashMap<MyKey, MyValue>();
}
Map imp=null;
如果(b){
imp=新的HashMap();
}否则{
imp=新LinkedHashMap();
}
只需将imp
声明为Map
,使用所需的类型参数进行参数化,并将其指定为具体类型
HashMap
和LinkedHashMap
都是Map
s,可以这样引用
Map<MyKey, MyValue> imp = null;
if (b) {
imp = new HashMap<MyKey, MyValue>();
} else {
imp = new LinkedHashMap<MyKey, MyValue>();
}
Map imp=null;
如果(b){
imp=新的HashMap();
}否则{
imp=新LinkedHashMap();
}
我会为之努力的
Map imp=b?新建HashMap():新建LinkedHashMap()代码>
注意菱形操作符的用法:不需要长时间拼写泛型
以这种方式使用三元条件运算符意味着imp
在声明和初始化之间永远不会处于未定义的状态。我想
Map imp=b?新建HashMap():新建LinkedHashMap()代码>
注意菱形操作符的用法:不需要长时间拼写泛型
以这种方式使用三元条件运算符意味着imp
在声明和初始化之间永远不会处于未定义状态。查看集合中的继承树
正如您所看到的,这两个类都可以实现为映射
因此,您可以:
Map<FooKey, FooValue> implementedMap = null;
if (b) {
implementedMap= new HashMap<FooKey, FooValue>();
} else {
implementedMap= new LinkedHashMap<FooKey, FooValue>();
}
Map implementedMap=null;
如果(b){
implementedMap=新HashMap();
}否则{
implementedMap=新建LinkedHashMap();
}
查看集合中的继承树
正如您所看到的,这两个类都可以实现为映射
因此,您可以:
Map<FooKey, FooValue> implementedMap = null;
if (b) {
implementedMap= new HashMap<FooKey, FooValue>();
} else {
implementedMap= new LinkedHashMap<FooKey, FooValue>();
}
Map implementedMap=null;
如果(b){
implementedMap=新HashMap();
}否则{
implementedMap=新建LinkedHashMap();
}
接口
非interfaz
。除此之外,Map imp
还有什么问题?接口
不是interfaz
。除此之外,Map imp
有什么问题吗?如果imp
永远不能null
我就不会初始化它。如果imp
永远不能null
我就不会初始化它。谢谢大家,如果我以前问过,我节省了很多时间谢谢大家,如果我以前问过,我节省了很多时间