2

Pythonで使用したのと同じように、Javaでメソッドを記述したいのですが、numの代わりにアドレスを出力します:

以下はコードです:

print(1,2,3) または print(obj[]) を使用できますが、integer[] num={1,2,3,4,5}; を使用すると print(int[]) はできません。出力は正しい

Pythonのように(int [])を印刷するには?

  public class Print {


        public static void print() {
            System.out.println();
        }   


        public static void print(Object... obj) {
            for(Object c:obj){
                System.out.print(c);
                System.out.print(" ");
            }
            System.out.println();
        }

        public static void print(Object obj) {
            System.out.println(obj);
        }

        public static void main(String[] args){
            int[] num={1,2,3,4,5};
            print(num);


        }

    }
4

2 に答える 2

1

配列の内容を表示するには、次を使用できます。

System.out.println(Arrays.toString(num));

出力:

[1, 2, 3, 4, 5]

「アドレス」が表示されている理由は、プリミティブ配列int[]がオブジェクトでありObject[]、最初のprintメソッドで使用されているものではないためです。したがって

public static void print(Object obj)

と呼ばれます。

最初の方法を機能させるには、次のようなものを使用する必要があります。

public static void print(int[] nums {
    for (int num : nums) {
        System.out.print(num);
        System.out.print(" ");
    }
    System.out.println();
}

または、上記の出力形式が受け入れられる場合:

public static void print(int[] nums) {
    System.out.println(Arrays.toString(nums));
}
于 2012-09-05T12:06:02.790 に答える
0

print(Object... obj)は基本的にprint(Object[] obj)。を渡さない場合は、代わりにObject[],print(Object obj)が使用されます。intはプリミティブであり、から継承しないため、Objectあなたint[]は. ラッパー クラスを使用して を作成するか、実装する必要があります。Object[]IntegerInteger[]print(int[] ints)

print(1,2,3)引数は自動的にIntegers に変換されるため、機能します。

于 2012-09-05T12:20:36.650 に答える