>Java >java지도 시간 >Java의 \'[Ljava.lang.Object;\' 클래스 유형 인코딩을 어떻게 디코딩합니까?

Java의 \'[Ljava.lang.Object;\' 클래스 유형 인코딩을 어떻게 디코딩합니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-19 17:42:03986검색

How Do I Decode Java's

Java에서 클래스 유형 정보 디코딩

종종 "[Ljava.lang.Object;"와 같은 문자열을 접하게 됩니다. Java에서 클래스 유형으로 작업할 때. 객체의 실제 유형을 식별하려면 이 인코딩을 디코딩하는 방법을 이해하는 것이 중요합니다.

이 인코딩은 Class.getName()에 문서화된 특정 명명 체계를 따릅니다. 클래스 객체가 배열 유형을 나타낼 때 해당 이름은 대괄호 "[" 뒤에 오는 요소 유형의 이름으로 구성됩니다. 예를 들어 "[Ljava.lang.Object;" 객체 배열인 Object[]를 나타냅니다.

다음 표에는 일반적인 요소 유형의 인코딩이 요약되어 있습니다.

Element Type Encoding
boolean Z
byte B
char C
double D
float F
int I
long J
short S
Class or interface Lclassname;

배열은 Object에서 상속된 toString() 메서드를 재정의하지 않습니다. , 다음 형식의 문자열을 반환합니다.

getClass().getName() + '@' + Integer.toHexString(hashCode())

이것이 배열의 toString()이 우리가 접하는 특정 형식의 문자열을 반환하는 이유입니다. 배열 대괄호 및 클래스 이름 인코딩을 포함합니다.

toString()을 사용하여 배열 유형을 디코딩하는 것은 권장되지 않지만 Java는 유형 정보를 얻기 위한 대체 방법을 제공합니다. 객체에 대해 getClass()를 호출하면 리플렉션 목적으로 사용할 수 있는 Class 객체가 반환됩니다. 또한 java.util.Arrays는 기본 배열 및 Object[]에 대한 toString() 오버로드를 제공하므로 사람이 읽을 수 있는 배열 내용 표현을 더 쉽게 얻을 수 있습니다.

위 내용은 Java의 '[Ljava.lang.Object;' 클래스 유형 인코딩을 어떻게 디코딩합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.