2

オブジェクトを一般的に出力する必要があるコードのブロックを書いています。オブジェクトは、配列の配列の配列を含め、何でもかまいません。配列の場合は、プリミティブの配列、またはクラスオブジェクトの配列にすることができます。これどうやってするの?

基本的に:

Object x = new int[]{1, 2, 3, 4};
Object y = new int[][]{{},{1,2}};
Object z = "hello";
//etc...

ここで、x、y、またはzを印刷する一般的な方法が必要です。

たとえば、yの場合、「{{}、{1,2}}」が必要です。

編集:右側がObject []の場合に機能するいくつかの回答が表示されますが、プリミティブ配列では機能しないようです

4

4 に答える 4

4

GSONの使用例:

static Gson gs = new Gson();

public static void main(String[] args) {
    Object obj = new int[] { 1, 2, 3, 4 };
    System.out.println(gs.toJson(obj));
}

// output: [1,2,3,4]
于 2012-10-02T06:39:19.373 に答える
2

1- Arrays.deepToString

2- Arrays.toString

于 2012-10-02T06:37:31.183 に答える
0

instanceof?を使用する

Object x = new int[]{1, 2, 3, 4};
        Object y = new int[][]{{},{1,2}};
        Object z = "hello";

        if(x instanceof int[])
        {
            for(int i:(int[])x)
            {
                System.out.println(i);
            }
        }
        if(y instanceof int[][])
        {
             for (int[] arr : (int[][])y) {
                    System.out.println(Arrays.toString(arr));
                }

        }
        if(z instanceof String)
        {
            System.out.println(z);
        }

更新 対応するラッパークラスを使用すれば、プリミティブでも機能すると思います。

            byte a =1;
            Object t = a;
            char c = 'c';
            Object j = c;
            if(t instanceof Byte)
            {
                System.out.println(t);
            }

            if(j instanceof Character)
            {
                System.out.println(j);
            }
于 2012-10-02T06:37:57.037 に答える
-1

toString()を使用すると、デフォルトですべてのオブジェクトでオーバーライドされます

于 2012-10-02T06:35:13.943 に答える