Даже если только List
и Set
реализуют интерфейс Iterable
, я считаю, что массив, список, множество и карта являются итерируемымиобъектами, в том смысле, что мы можем использовать их все через цикл foreach:
for(String s : new String[0]);
for(String s : new ArrayList<String>());
for(String s : new HashSet<String>());
for(Entry<Integer, String> entry : new HashMap<Integer, String>().entrySet());
Случай с Map
может немного отличаться, но давайте рассмотрим это как список ключ-значение (что это на самом деле).
Начиная с этого итерируемого понимания, мне не хватает типа в следующем методе?
public boolean isIterable(Object o) {
return o instanceof Object[] || o instanceof Iterable || o instanceof Map;
}
Другими словами, существуют ли какие-либо другие типы, которые можно повторять в цикле foreach?
Побочный, но результирующий вопрос: является ли этот список типов исчерпывающим?