Есть ли способ в Java иметь карту, где параметр типа значения привязан к параметру типа ключа? Я хочу написать следующее:
public class Foo {
// This declaration won't compile - what should it be?
private static Map<Class<T>, T> defaultValues;
// These two methods are just fine
public static <T> void setDefaultValue(Class<T> clazz, T value) {
defaultValues.put(clazz, value);
}
public static <T> T getDefaultValue(Class<T> clazz) {
return defaultValues.get(clazz);
}
}
То есть, я могу сохранить любое значение по умолчанию для объекта Class, если тип значения совпадает с типом объекта класса. Я не понимаю, почему это не должно быть разрешено, так как я могу обеспечить при настройке/получении значений правильные типы.
EDIT: Благодаря cletus за его ответ. Мне действительно не нужны параметры типа на самой карте, так как я могу обеспечить согласованность в методах, которые получают/устанавливают значения, даже если это означает использование немного уродливых бросков.