だから、私はすでに発見しました
Arrays.toString(arr);
したがって、この質問を私に指摘しないでください。
私の問題はほんの少し違います。この場合、問題の配列へのネイティブ配列ポインターがありません。私はそれをオブジェクトポインタとして持っており、それは任意のタイプ(プリミティブまたはその他)の配列である可能性があります。この場合、ObjectポインタをObject []にキャストすることで、上記のtoString()メソッドを使用できます。ただし、ポインタがプリミティブ配列の場合、ランタイム例外がスローされてクラッシュします。それで?
例:
double test[] = {1, 2, 3, 4};
Object t = test;
// Now how do I pretty print t as an array with no access to test?
私はこれで私の問題を解決しました:
public String unkObjectToString(Object o) {
if(!o.getClass().isArray()) return o.toString();
int len = Array.getLength(o);
String ret = "[";
for(int i = 0; i < len; i++) {
Object q = Array.get(o, i);
ret += unkObjectToString(q);
if(i == len - 1)
ret += "]";
else
ret += ", ";
}
return ret;
}