Другие ответы дают прекрасные решения. Но что, если вы do хотите использовать только something
в расширенном цикле for?
Вы должны заставить класс реализовать Iterable
:
class Something implements Iterable<Object> {
И реализовать метод iterator()
:
@Override public Iterator<Object> iterator() {
return names.iterator(); // for example.
}
Теперь вы можете написать:
for (Object object : something) { ... }
и это будет приемлемо для компилятора.
Но вы должны делать это только в том случае, если Something
is-a Итерируемый из Объектов, то есть, что он по сути моделирует что-то, что должно быть повторено (например, это «как список»). В противном случае, если он просто имеет-1023 * итерируемых объектов, придерживайтесь других предложенных решений.