2014-11-27 1 views
0

처음 Object[] 안에있는 Object[]에 액세스하려고하면 메모리 주소가 System.out.println(Object[1]);이됩니다.Object [] within Object [] Java가 메모리 주소를 반환합니까?

어떻게 대신 내용을 반환 할 수 있습니까?

+1

'System.out.println (Arrays.toString (Object [1]));'? –

+2

그것은 메모리 주소가 아니며 숫자 부분에 대한 해시 코드입니다. toString()을 확인하십시오. –

답변

0

System.out.println을 배열 (또는 그와 관련된 다른 객체)에 호출하면 toString() 메서드가 암시 적으로 호출됩니다 (물론 null이 아닌 것으로 가정). 배열은 사소한 방식으로 구현하므로 언급 한 바와 같이 주소를 얻는 것은 그리 유용하지 않습니다.

System.out.println(Arrays.deepToString(Objects)); 
+0

작동하지만 배열을 객체로 지정해야했습니다. System.out.println (Arrays.toString (Object []) objects [1]))); 내용을 반환합니다. 배열 내의 배열에있는 특정 항목에 어떻게 액세스합니까? –

0

단순이

outerObj = Object[1]; 
System.out.println(outerObj[0]); 
을 수행하면 전체 "부모"배열을 인쇄 할 Arrays.deepToString를 사용할 수 있습니다, 더 나은 아직

System.out.println(Arrays.toString(Objects[1])); 

또는 :

Arrays.toString는 당신에게 더 유용한 출력을 제공한다

0

개체 안에 문자열을 넣는 경우 do :

System.out.println(((String)Object[1])); 
0

Java는 배열에서 toString()을 호출 할 때 쓰레기를 인쇄합니다. 중첩 된 배열이 여전히 있으며, toString() 치료를받을 수 있도록,

Arrays.toString(array); 

하지만 당신은 배열의 배열을 가지고 :
는 읽기 쉽게 배열을 인쇄합니다.
하지만! 탈출구가있다!

Arrays.deepToString(arrayOfArrays); 
관련 문제