是否有相当于NullWriter的地图? http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/output/NullWriter.html
我写了下面的内容,但标准实现会更好:
import java.util.Collection;
import java.util.Map;
import java.util.Set;
/**
* a "write only " that discards all values. Useful as a place holder for
* optional usage of a real map
*
* @param <K>
* @param <V>
*/
public class NullMap<K, V> implements Map<K, V> {
public NullMap() {
}
@Override
public int size() {
return 0;
}
@Override
public boolean isEmpty() {
return true;
}
@Override
public boolean containsKey(Object key) {
return false;
}
@Override
public boolean containsValue(Object value) {
return false;
}
@Override
public V get(Object key) {
return null;
}
@Override
public V put(K key, V value) {
return null;
}
@Override
public V remove(Object key) {
return null;
}
@Override
public void putAll(Map<? extends K, ? extends V> m) {
}
@Override
public void clear() {
}
@Override
public Set<K> keySet() {
throw new UnsupportedOperationException("Null map");
}
@Override
public Collection<V> values() {
throw new UnsupportedOperationException("Null map");
}
@Override
public Set<java.util.Map.Entry<K, V>> entrySet() {
throw new UnsupportedOperationException("Null map");
}
}
添加:在某些情况下,我希望记录一些数据供以后使用,在某些情况下我不会。而是用丑陋的代码加密代码
if (map != null) {
map.put("frick","frack");
}
我更喜欢写作
map.put("frick","frack");
如果将map分配给NullMap,则抛弃数据。
答案 0 :(得分:4)
不是我所知,但可以通过从TreeMap或HashMap扩展来使生活更轻松。
public class BulimiaMap<K, V> extends HashMap<K, V> {
@Override
public V put(K key, V value) {
return null;
}