Чтобы получить общий фабричный метод с T и U в качестве типа класса, вы можете перейти к
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
- необязательные параметры.Вы также можете иметь пустые параметры.
Если вы наблюдаете перед возвращаемым типом HashMap<T,U>
в функции, мы поставили <T,U>
, чтобы обозначить, что это универсальный метод
здесь T и Uможет быть любым допустимым типом класса.В вашем случае это String, а Boolean
new HashMap<T,U>
- это экземпляр, который создается и обновляется в соответствии с требованиями вашего фабричного метода.
например.В приведенном ниже примере мы просто добавляем t
и u
к карте, если они не равны NULL, возвращая пустой 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);
}