How do I cast a Java Object into a List of integers?

k88074 :

A method of some poorly documented library is returning me a List of Objects. I know that the list contains ArrayLists of integers. As follows:

List<?> result = lib.get();
Iterator<?> iterator = result.iterator();
while(iterator.hasNext()){
    Object next = iterator.next();
    System.out.println(next.toString());
    System.out.println(next.getClass());
}

Gets me

 [0, 0] 
 class java.util.Arrays$ArrayList 
 [0, 1] 
 class java.util.Arrays$ArrayList 
 [0, 2] 
 class java.util.Arrays$ArrayList 

How can I get to turn those objects into ArrayList so that I can use them properly?

Mohammad Hassany :

I think you can only cast the Object next = ... object into the type java.util.Arrays$ArrayList, but because it is a private static class, it is better to cast it to java.util.List class.

Like:

List<?> result = lib.get();
Iterator<?> iterator = result.iterator();
while(iterator.hasNext()){
    Object next = iterator.next();
    // -------------------
    List<Integer> list = (List<Integer>) next;
    System.out.println(list.get(0));
    System.out.println(list.get(1));
    // -------------------
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=134793&siteId=1