Перебрать объект

1

У меня есть объект o который я знаю на самом деле, что это массив чего-то. Как ȯ?

Object o;
if (o != null && o.getClass().isArray()) {
  for (Object each : o) {  // compile error, of course
    System.out.println(each);
  }
}
Теги:
object
arrays

4 ответа

0
Лучший ответ

Вы передали этот объект массиву перед его повторением.

if (o != null && o.getClass().isArray()) {
  Object[] temp (Object[] o)
  for (Object each : temp) {  
    System.out.println(each);
  }
}
  • 1
    Довольно очевидно. Я просто подумал, что будет выбрасывать ClassCastException, когда это String [] или что-то еще.
2

добавьте его в массив, например:

public static void main(String... args) {
    Object o = new Object[]{"one", "two"};
    if (o != null && o.getClass().isArray()) {
        for (Object each : (Object[])o) {  // no compile error, of course
            System.out.println(each);
        }
    }
}
  • 1
    Это действительно сработает. Не буду с этим спорить. Тем не менее, отливки следует избегать в целом. Если вы настолько уверены, что «объект» на самом деле является массивом, сделайте это явным в вашем коде! Предпосылка заключается в том, что вы должны быть в состоянии изменить код, который создает массив.
0

Попробуйте этот код.

Object o = null;
Iterator ite = ((Iterable)o).iterator();
while(ite.hasNext()){
     Object itObj = ite.next();
}
0

попробуйте этот код:

ArrayList<Array_Type> array= (ArrayList<Array_Type>) o;
Iterator iterator=array.iterator();
System.out.println(iterator.next());

Java имеет интерфейс Iterator, который может проходить через Collection, поэтому, если ваш "o" Object является массивом, добавьте его в массив ArrayList и повторите его.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню