多次元配列の各次元の大きさを調べたいのですが、上手い方法はありませんか?
前提として、配列はプリミチブなタイプで Object にキャストされてます。

Object foo = new int[9][9][9];
List<Integer> dim = new ArrayList<Integer>();

while (foo.getClass().isArray()) {
int length = Array.getLength(foo);
dim.add(length);
if (length > 0) {
foo = Array.get(foo, 0);
} else {
break;
}
}

これだと一応動きますが、int[9][0][0] などになると
お手上げになってしまいます。