我想在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);
}
}
答案 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。