我使用JCache来缓存web响应。缓存键包括以下字段:
我创建了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);另一种方法是使用字符串作为缓存键类型:
JCache<String, byte[]> cache = ...
String key = "/category/list/1";
cache.put(key, bytesContent);因为用于序列化/反序列化的字符串类型比ResponseKey类型轻。
我的问题是:我应该使用字符串键而不是ResponseKey键吗?
发布于 2018-06-12 16:30:03
这个问题可能没有确切的答案,因为每一种方法都有优缺点。两者都会起作用的。
/。因此,我建议使用String =>,因为它有更多的优点。
注意:在具有复杂值类型的其他语言中,另一种更好的选择是使用仅由字符串组成的值类型,但提供额外的类型安全性以及(De)组合其组件的方法。
https://stackoverflow.com/questions/50821254
复制相似问题