Deepak Sarda Deepak Sarda - 1 year ago 88
Java Question

How to get the Array Class for a given Class in Java?

I have a

variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this:

Class arrayOfFooClass = java.lang.reflect.Array.newInstance(fooClass, 0).getClass();

Is there a way to do this without creating the new instance?

Answer Source

If you don't want to create an instance, you could create the canonical name of the array manually and get the class by name:

// Replace `String` by your object type.
Class stringArrayClass = Class.forName(
    "[L" + String.class.getCanonicalName() + ";"

But Jakob Jenkov argues in his blog that your solution is the better one, because it doesn't need fiddling with strings.

Class stringArrayClass = Array.newInstance(String.class, 0).getClass();
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download