MultivaluedMap map= new MultivaluedMapImpl();
map.add("Accept-Encoding", "compress;q=0.5");
map.add("Accept-Encoding", "gzip;q=1.1");
map.add("Accept-Encoding", "gzip;q=1.2");
map.add("Accept-Encoding", "gzip;q=1.3");
如何找到“Accept-Encoding”键的大小?
最佳答案
MultivaluedMap<K, V>
实现Map<K,List<V>>
所以
((Map<String,List<String>>)map).get("Accept-Encoding").size();
现在我看到您使用非通用版本(这不是一个好主意):
Map tmp = map instanceof Map ? (Map) map : new HashMap();
// because you don't use generic you should get value as an Object instance
Object value = tmp.get("Accept-Encoding");
// by default we assume that there the value is not a List instance
int size = 0;
// for security we check that the value instance implements List interface
if (value instanceof List) {
// we check size of that list
size = ((List) value).size();
}
简短版本(且未经检查):
((List) ((Map) map).get("Accept-Encoding")).size();
您应该明白为什么使用通用版本比原始版本更好。
关于java - 如何查找 MultivaluedMap 中键的长度/大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31726072/