我在使用Arrays.deepToString( Object[] arr )
方法在Java中打印基元数组的元素时遇到问题。如果我将arr
定义为int[][] T = { {0,1},{2,1} }
,则T[0]
和T[1]
分别是1D整数数组[0,1]和[2,1],因此是Java对象。例如,我认为Arrays.deepToString( T[0] )
会打印[0,1]。但我得到一个编译时错误,说它找不到方法。这是程序。
import java.util.Arrays;
class Test {
public static void main( String[] args ) {
int[][] T = {{0,1},{2,1}};
System.out.println( "\nT[0] is " + Arrays.deepToString( T[0] ) + "." );
System.out.println( "\nT[1] is " + Arrays.deepToString( T[1] ) + "." );
}
}
我收到编译时错误,说它无法在代码的第6行和第7行找到符号方法deepToString( int[] )
。我错过了一些明显的东西吗我已经导入了正确的类java.util.Arrays,我正在根据正确的签名调用该方法。
请帮忙。
答案 0 :(得分:0)
Sandeep,Arrays.deepToString期待一个对象数组,你传入一个整数基元数组。
您需要将二维数组从使用int基元更改为整数对象。这样,自动装箱在创建数组时负责从int到Integer的转换。
import java.util.Arrays;
class Test {
public static void main( String[] args ) {
Integer[][] T = {{0,1},{2,1}};
System.out.println( "\nT[0] is " + Arrays.deepToString( T[0] ) + "." );
System.out.println( "\nT[1] is " + Arrays.deepToString( T[1] ) + "." );
}
}
答案 1 :(得分:0)
deepToString()接受Objects的数组,而不是基元。尝试:
public static void main( String[] args ) {
Integer[][] T = {{0,1},{2,1}};
System.out.println( "\nT[0] is " + Arrays.deepToString( T[0] ) + "." );
System.out.println( "\nT[1] is " + Arrays.deepToString( T[1] ) + "." );
}
http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html#deepToString%28java.lang.Object []%29