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

前端 未结 5 872
时光取名叫无心
时光取名叫无心 2020-11-28 15:42

I have a Class 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:<

5条回答
  •  醉话见心
    2020-11-28 16:17

    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();
    

提交回复
热议问题