2017-02-20 2 views
0

저는 1 차원 배열의 정수를 가진 ArrayList ArrayList<int[]>을 가지고 있습니다. 내가 디버깅하고 내 시계 아래의 코드에서 tmp에 설정 한 경우Java에서 정수 배열을 재정의 할 수 있습니까?

, 나는 int[]toString 메소드를 오버라이드 (override) 할 필요가 의미하는 tmp의 내용을 볼 수 있도록하려면?

현재로서는 아래의 print 방법을 사용하여 내용을 인쇄하여 볼 수 있습니다. 그러나 이상적으로하고 싶지 않고 tmp의 내용을보고 싶습니다. 디버거의 멤버입니다.

PS : 나는 tmp.get(0)[0]

public class TryPrinting { 
    public static void main(String[] args) { 
     int[][] people = { {7,0}, {7,1}, {6,1}, {5,0}, {5,2}, {4,4} }; 

     TryPrinting obj = new TryPrinting(); 
     obj.test(people); 
    } 

    public void test(int[][] people) 
    { 
     int n = people.length; 
     ArrayList<int[]> tmp = new ArrayList<>(); 
     for (int i = 0; i < n; i++) 
     { 
      tmp.add(people[i][1], new int[]{people[i][0], people[i][1]}); 

      print(tmp);//This works 
      System.out.println(tmp);//But I want this to work 
      System.out.println(""); 
     } 

    } 

    /* print al */ 
    public void print(ArrayList<int[]> al) 
    { 
     for(int i = 0;i<al.size();i++) 
     { 
      print(al.get(i)); 
     } 
     System.out.println(""); 
    } 

    /* print 1d array */ 
    public void print(int[] a) 
    { 
     for(int i = 0;i<a.length;i++) 
      System.out.print(a[i] + " "); 
    } 
} 
+0

정수로 상자 int 경우, 그것은 클래스 형식의 개체가 될 것 같아요, 당신도 toString을 얻을 것 같아요 ... – ultrajohn

+0

코드에 주석 당신이 콘솔에 인쇄하는 것을 의미합니다, 하지만 귀하의 질문은 당신이 그것을 표시하는 디버거를 원하는 의미합니다. 무엇 이니? 그리고 어떤 IDE를 사용하고 있습니까? – shmosel

+0

질문 제목에 대한 답변에서 대답은 아니오입니다. – shmosel

답변

2

배열 클래스는 final있다, 말, 같은 디버그 조사 식을 갖고 싶어하지 않습니다 당신은 그들을 확장하고 자신의 방법을 재정의 할 수 없습니다.

쉽게 배열의 내용을 인쇄하려면 다음과 같이 java.util.Arrays의 방법을 사용할 수 있습니다

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

대안은 "적절한"toString 메소드를 구현 배열, 대신에 List의를 사용하는 것입니다.

관련 문제