要素型から配列型を取得

要素型から配列型を取得したい。
Array.newInstanceで配列を生成してgetClassで取得できる。

package test;

import java.lang.reflect.Array;

public class GetArrayTypeTest {

    @SuppressWarnings("unchecked")
    public static <T> Class<T[]> getArrayType(final Class<T> clazz) {
        return (Class<T[]>) Array.newInstance(clazz, 0).getClass();
    }
    
    public static void main(final String[] args) {
        System.out.println(getArrayType(int.class));
        System.out.println(getArrayType(int[].class));
        System.out.println(getArrayType(Cloneable.class));
        System.out.println(getArrayType(Cloneable[].class));
        // 無名クラス
        System.out.println(getArrayType(new Object(){/**/}.getClass()));
        // void
        System.out.println(getArrayType(void.class));
    }

}

実行結果

class [I
class [[I
class [Ljava.lang.Cloneable;
class [[Ljava.lang.Cloneable;
class [Ltest.GetArrayTypeTest$1;
Exception in thread "main" java.lang.IllegalArgumentException
	at java.lang.reflect.Array.newArray(Native Method)
	at java.lang.reflect.Array.newInstance(Unknown Source)
	at test.GetArrayTypeTest.getArrayType(GetArrayTypeTest.java:9)
	at test.GetArrayTypeTest.main(GetArrayTypeTest.java:19)

無名クラスの配列型も問題なく取得できる。

void配列はありませんで書いた通り、void配列はない。

疑問

配列をnewしないで取得する方法はあるのだろうか?