Я думал о том, чтобы использовать класс, который я использую в качестве значения, реализующего Map.Entry.Кажется ли это разумным подходом или опасным?
Опасно или нет, это плохой дизайн, поскольку он нарушает принцип единоличной ответственности .Класс не должен нести ответственность за выполнение своих собственных задач, а также за то, что он Map.Entry.Что происходит, когда вы хотите использовать его в другой библиотеке?Вам нужно реализовать другой интерфейс?
Хотя мне неясно, что вы надеетесь получить, внедрив Map.Entry
(вы пытаетесь расширить AbstractMap
?), Я могу вам сказать, что это пахнет плохои я никогда не видел, чтобы это было сделано на практике.
В чем здесь проблема?Что не так с использованием HashMap
?
Map<String, MyClass> map = new HashMap<String, MyClass>();
MyClass myObj = new MyClass("myId");
//...
map.put(myObj.getIdentifier(), myObj);
MyClass retrievedObj = map.get("myId");