오브젝트 배열이 무언가라는 사실을 알고있는 o
오브젝트가 있습니다. 을 반복하는 방법은 무엇입니까?오브젝트 반복하기
Object o;
if (o != null && o.getClass().isArray()) {
for (Object each : o) { // compile error, of course
System.out.println(each);
}
}
오브젝트 배열이 무언가라는 사실을 알고있는 o
오브젝트가 있습니다. 을 반복하는 방법은 무엇입니까?오브젝트 반복하기
Object o;
if (o != null && o.getClass().isArray()) {
for (Object each : o) { // compile error, of course
System.out.println(each);
}
}
당신은 그것을 통해 반복 처리하기 전에 배열에 객체를 캐스팅했다. 이 같은 배열에
if (o != null && o.getClass().isArray()) {
Object[] temp (Object[] o)
for (Object each : temp) {
System.out.println(each);
}
}
캐스트를 : 당신의 'O 경우
ArrayList<Array_Type> array= (ArrayList<Array_Type>) o;
Iterator iterator=array.iterator();
System.out.println(iterator.next());
자바는 Collection
을 통해 걸을 수 Iterator 인터페이스를, 그래서 :
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);
}
}
}
이것은 실제로 작동합니다. 그것으로 논쟁하지 않을 것이다. 그러나 주조는 일반적으로 피해야합니다. '객체'가 실제로 배열이라는 것을 확신한다면 코드에서 명시 적으로 지정하십시오! 전제는 배열을 생성하는 코드를 변경할 수 있어야한다는 것입니다. –
이 코드를 시도 '객체는 배열이며, 배열'ArrayList
'으로 캐스팅하고 반복합니다.
[이 스레드를보십시오.] (http://meta.stackoverflow.com/a/250872/1686291) –
이 코드를 사용해보십시오.
Object o = null;
Iterator ite = ((Iterable)o).iterator();
while(ite.hasNext()){
Object itObj = ite.next();
}
[How to answer.] (http://stackoverflow.com/help/how-to-answer)를 확인하십시오. –
꽤 분명합니다. 나는 그것이 ClassCastException을 던질 것이지만 그것은 String []이거나 다른 것입니다. – milan