I have a valid ArrayList
object in the form of java.lang.Object
. I have to again convert the Object
to an ArrayList
. I tried this:
Object obj2 = from some source . . ; ArrayList al1 = new ArrayList(); al1 = (ArrayList) obj2; System.out.println("List2 Value: "+al1);
But it is printing null
.
How can I do this?
Object obj2 = from some source . . ; ArrayList al1 = new ArrayList(); al1 = (ArrayList) obj2; System. out. println("List2 Value: "+al1);
//Assuming that your object is a valid List object, you can use: Collections. singletonList(object) -- Returns an immutable list containing only the specified object. //Similarly, you can change the method in the map to convert to the datatype you need.
To convert collection-based object into an array we can use toArray() or toArray(T[] a) method provided by the implementation of Collection interface such as java. util. ArrayList .
You can create a static util method that converts any collection to a Java List
public static List<?> convertObjectToList(Object obj) {
List<?> list = new ArrayList<>();
if (obj.getClass().isArray()) {
list = Arrays.asList((Object[])obj);
} else if (obj instanceof Collection) {
list = new ArrayList<>((Collection<?>)obj);
}
return list;
}
you can also mix the validation below:
public static boolean isCollection(Object obj) {
return obj.getClass().isArray() || obj instanceof Collection;
}
This only results in null
if obj2
was already null
before the cast, so your problem is earlier than you think. (Also, you need not construct a new ArrayList to initialize al1
if you're going to assign to it immediately. Just say ArrayList al1 = (ArrayList) obj2;
.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With