Android 如何使LruCache仅接受密钥?
Android 如何使LruCache仅接受密钥?,android,android-lru-cache,Android,Android Lru Cache,LruCache是一个映射,但我想使用LruCache仅缓存字符串,即我希望LruCache用作哈希集 我应该如何定义LruCache类 LruCache不起作用,因为当我的代码调用LruCache.put(“abc”,null)时,抛出了NullPointerException 谢谢。非常清楚: 此类不允许将null用作键或值。从get(K)、put(K,V)或remove(K)返回null值是明确的:键不在缓存中 您可以定义自己的字符串包装器类以用于值。您可以使用它的一个特殊实例来表示空字符
LruCache
是一个映射,但我想使用LruCache
仅缓存字符串,即我希望LruCache用作哈希集
我应该如何定义LruCache
类
LruCache
不起作用,因为当我的代码调用LruCache.put(“abc”,null)
时,抛出了NullPointerException
谢谢。非常清楚:
此类不允许将null用作键或值。从get(K)
、put(K,V)
或remove(K)
返回null值是明确的:键不在缓存中
您可以定义自己的字符串包装器类以用于值。您可以使用它的一个特殊实例来表示空字符串
public class StringValue {
public final String string;
public StringValue(String s) {
string = s;
}
public String toString() {
return String.valueOf(string); // in case it's null
}
public String asString() {
return string;
}
public static final StringValue NULL = new StringValue(null);
}
然后您可以存储一个非空值:
LruCache<String, StringValue> lruCache = new LruCache<String, StringValue>();
lruCache.put("abc", StringValue.NULL);
lruCache.put("def", new StringValue("something"));
LruCache LruCache=new LruCache();
lruCache.put(“abc”,StringValue.NULL);
lruCache.put(“def”,新字符串值(“某物”);
不存储null
。存储其他内容,例如字符串
。确定。我想我必须定义LruCache,并将字符串同时作为键和值,例如LruCache.put(stringToCache,stringToCache)。