> Java > java지도 시간 > Java의 `toString()` 메소드가 배열에 대한 암호화된 출력을 생성하는 이유는 무엇입니까?

Java의 `toString()` 메소드가 배열에 대한 암호화된 출력을 생성하는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-11-16 11:01:03
원래의
423명이 탐색했습니다.

Why Does Java's `toString()` Method Produce Cryptic Output for Arrays?

배열을 위한 Java의 흔하지 않은 'ToString()'

Java에서 toString() 메소드는 사람이 읽을 수 있는 유용한 문자열을 제공할 것으로 예상됩니다. 객체의 문자열 표현. 그러나 배열을 다룰 때는 이러한 기대가 충족되지 않습니다.

배열의 ToString()

다음 코드를 고려하세요.

char[] Array = {'a', 'b', 'c', 'd', 'e', 'f'};
System.out.println(Array.toString());
로그인 후 복사

예상된 문자열 "abcdef"를 반환하는 대신 이 코드는 다음과 같은 횡설수설을 인쇄합니다. "[C@6e1408" 또는 "[C@e53108."

이 동작은 배열에 대한 Java의 기본 toString() 구현이 다음을 포함하는 암호화된 문자열을 생성하기 때문에 발생합니다.

  • [ (왼쪽 대괄호)
  • C(요소 유형, 'C'는 char)
  • @(구분 기호)
  • ID 해시 코드(배열의 고유 식별자)

해결책

사람이 읽을 수 있는 배열 문자열 표현을 얻으려면 정적 Arrays.toString() 메서드를 사용하세요. 대신:

System.out.println(Arrays.toString(Array));
로그인 후 복사

이 메서드는 원하는 "abcdef" 문자열을 명시적으로 반환합니다.

이론

암호적인 toString( ) 배열 구현은 종종 실수로 간주됩니다. 이 디자인의 의도는 디버깅 시 메모리 주소의 우선순위를 정하는 것이었지만 일상적인 사용에는 도움이 되기보다는 혼란을 주는 것으로 입증되었습니다.

위 내용은 Java의 `toString()` 메소드가 배열에 대한 암호화된 출력을 생성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿