如何在工厂方法中为 Hashmap<String Boolean> 创建构造函数?
How to create constructor for Hashmap<String Boolean> in a factory method?
我正在 public class.
中为 Hashmap 创建一个工厂方法
public class MyList {
Hashmap list = newMap(); //is this function called properly here?
public static final Hashmap newMap() {
return Hashmap(String, boolean);
}
}
最简单的,如果工厂方法是为key/value对保存字符串和布尔值,我该如何设置?
我被语法困住了。
我只想return一个新的Hashmap对象并使用newMap()作为工厂方法
HashMap
有键和值的通用类型,因此您需要将这些类型指定为
public static HashMap<String, Boolean> newMap() {
// ...
}
在内部,您将创建地图
return new HashMap<String, Boolean>();
- 或者就像
return new HashMap<>();
使用菱形运算符一样(因为类型已经在签名中
您也可以将类型作为参数传递
public static <K, V> HashMap<K, V> newMap(Class<K> classKey, Class<V> classValue) {
return new HashMap<>();
}
使用
public static void main(String[] args) {
Map<String, Boolean> map = newMap();
Map<Integer, Double> mapID = newMap(Integer.class, Double.class);
}
要获得 T 和 U 作为 Class 类型的通用工厂方法,您可以继续使用
public static <T,U> HashMap<T,U> factoryHashMap(T t , U u ){
HashMap<T,U> tuHashMap = new HashMap<T,U>();
// do stuff
return tuHashMap;
}
这里T t, Uu
是可选参数。你也可以有空参数。
如果您在函数中的 return 类型之前观察到 HashMap<T,U>
,我们已经放置了 <T,U>
来表示这是一个泛型方法
此处 T 和 U 可以是任何有效的 class 类型。在您的情况下,它是 String 和 Boolean
new HashMap<T,U>
是根据工厂方法的要求创建和更新的实例。
例如。在下面的示例中,我们只是将 t
和 u
添加到地图中,如果它们不为空,则 return 为空 HashMap
public static <T, U> HashMap<T, U> factoryHashMap(T t, U u) {
HashMap<T, U> tuHashMap = new HashMap<T, U>();
if (t != null && u != null)
tuHashMap.put(t, u);
return tuHashMap;
}
驱动方法:
public static void main(String args[] ) throws Exception {
HashMap<String, Boolean> myMap = factoryHashMap("isItCool?",false);
}
我正在 public class.
中为 Hashmap 创建一个工厂方法 public class MyList {
Hashmap list = newMap(); //is this function called properly here?
public static final Hashmap newMap() {
return Hashmap(String, boolean);
}
}
最简单的,如果工厂方法是为key/value对保存字符串和布尔值,我该如何设置?
我被语法困住了。
我只想return一个新的Hashmap对象并使用newMap()作为工厂方法
HashMap
有键和值的通用类型,因此您需要将这些类型指定为public static HashMap<String, Boolean> newMap() { // ... }
在内部,您将创建地图
return new HashMap<String, Boolean>();
- 或者就像
return new HashMap<>();
使用菱形运算符一样(因为类型已经在签名中
您也可以将类型作为参数传递
public static <K, V> HashMap<K, V> newMap(Class<K> classKey, Class<V> classValue) { return new HashMap<>(); }
使用
public static void main(String[] args) {
Map<String, Boolean> map = newMap();
Map<Integer, Double> mapID = newMap(Integer.class, Double.class);
}
要获得 T 和 U 作为 Class 类型的通用工厂方法,您可以继续使用
public static <T,U> HashMap<T,U> factoryHashMap(T t , U u ){
HashMap<T,U> tuHashMap = new HashMap<T,U>();
// do stuff
return tuHashMap;
}
这里T t, Uu
是可选参数。你也可以有空参数。
如果您在函数中的 return 类型之前观察到 HashMap<T,U>
,我们已经放置了 <T,U>
来表示这是一个泛型方法
此处 T 和 U 可以是任何有效的 class 类型。在您的情况下,它是 String 和 Boolean
new HashMap<T,U>
是根据工厂方法的要求创建和更新的实例。
例如。在下面的示例中,我们只是将 t
和 u
添加到地图中,如果它们不为空,则 return 为空 HashMap
public static <T, U> HashMap<T, U> factoryHashMap(T t, U u) {
HashMap<T, U> tuHashMap = new HashMap<T, U>();
if (t != null && u != null)
tuHashMap.put(t, u);
return tuHashMap;
}
驱动方法:
public static void main(String args[] ) throws Exception {
HashMap<String, Boolean> myMap = factoryHashMap("isItCool?",false);
}