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 중국어 웹사이트의 기타 관련 기사를 참조하세요!