如何编写像python这样的打印方法?

时间:2012-09-05 12:02:59

标签: java printing casting

我想在java中编写一个方法,就像我在python中使用它一样,但它会打印num的地址内容:

以下是代码:

我可以使用print(1,2,3)或print(obj []),但我无法打印(int []) 当我使用integer [] num = {1,2,3,4,5}时;输出正确

如何打印(int [])像python一样?

  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);


        }

    }

2 个答案:

答案 0 :(得分: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));
}

答案 1 :(得分:0)

print(Object... obj)基本上是print(Object[] obj)。如果您未传递Object[],则会使用print(Object obj)int是一个基元, 继承自Object,因此int[] <{1}}。您可以使用包装器类Object[]并创建Integer,也可以实现Integer[]

print(int[] ints)有效,因为参数会自动转换为print(1,2,3) s。