Я использую JCache для кэширования веб-ответов.Ключ кэша содержит следующие поля:
- контроллер: строка
- действие: строка
- параметры: массив
Iсоздал класс ResponseKey и использовал его в качестве типа ключа кэша:
public class ResponseKey implements Serializable {
private String controller;
private String action;
private Object[] parameters;
@Override
public int hashCode() { // IMPL }
@Override
public boolean equals(Object obj) { // IMPL }
}
Примеры кодов (работает нормально):
JCache<ResponseKey, byte[]> cache = ...
ResponseKey key = new ResponseKey("category", "list", new Object[] { 1 });
cache.put(key, bytesContent);
Другой подход заключается в использовании String в качестветип ключа кеша:
JCache<String, byte[]> cache = ...
String key = "/category/list/1";
cache.put(key, bytesContent);
Поскольку тип String легче, чем тип ResponseKey для сериализации / десериализации.
Мой вопрос: следует ли использовать ключ String вместо ResponseKeyключ?