2

我想在java中编写一个方法,就像我在python中使用它一样,但它会打印地址而不是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是原语并且不继承自所以Objectint[]不是Object[]. 您可以使用包装类Integer并创建一个,Integer[]或者您必须实现print(int[] ints).

print(1,2,3)有效,因为参数会自动转换为Integers。

于 2012-09-05T12:20:36.650 回答