문제

나는 이것을 스택 추적으로 본다 :

myorg.vignettemodules.CustomRegistration.NewScateGoryVapdao.getEmailContentById (i) lmyorg/pushemail/model/emailcontent;

"무엇을" "(I)L" 평균?

도움이 되었습니까?

해결책

그것은 메소드가 int, 그리고 반환 myorg.pushemail.model.EmailContent

"l"에서 "로의 문자열;"; 리턴 유형의 유형 설명자입니다. 괄호 안에있는 내용은 메소드 매개 변수입니다 (이 경우에는 하나만 있습니다).

이러한 유형 설명자는 Java Virtual Machine Specification의 일부로 정의됩니다. 섹션 4.3.2. 표 4.3-A 사용 된 모든 코드를 보여줍니다. 클래스가 컴파일되면이 양식의 설명자는 메소드의 서명과 필드 및 변수의 유형을 지정하는 데 사용됩니다.

Java 직렬화에서 메소드 디스크립터는 해시 된 정보의 일부입니다. 기본값을 형성하십시오 serialVersionUID a Serializable 수업.

RMI에서 메소드 디스크립터가 해시되고 결과가 사용됩니다. 어떤 메소드가 호출되는지 식별하십시오 원격 인터페이스에서.

다른 팁

그것은 형태입니다 이름 관리 명확한 방법 과부하에 사용됩니다. 메소드 이름은 매개 변수 및 리턴 유형을 설명하는 일련의 문자로 추가됩니다. 매개 변수는 괄호 안에 순차적으로 나타나고 리턴 유형은 닫는 괄호를 따릅니다. 코드는 다음과 같습니다.

  • Z: boolean
  • B: byte
  • C: char
  • S: short
  • I: int
  • J: long
  • F: float
  • D: double
  • L완전히 자격을 갖춘 클래스 이름 ; : 자격을 갖춘 수업
  • [ 유형 : 의 배열 유형
  • V: void

그래서, 당신의 경우, (I)Lmyorg/pushemail/model/EmailContent; 이 메소드가 유형의 하나의 인수를 가져옵니다 int 유형의 객체를 반환합니다 myorg.pushemail.model.EmailContent.

그것은 사소한 요점이지만 나는 이것이 이름의 엉망이라고 생각하지 않습니다. 이름 Mangling은 이름에 추가 물건을 추가하는 것을 의미합니다. ZBC 등은 Java가 클래스 파일에서 메소드 서명을 인코딩하는 방법입니다. 부울을 쓰지 않고 Z를 넣습니다. 공간을 절약합니다.

Wikipedia (표준 면책 조항이 적용됨)에 따르면, Java에서 멍청한 유일한 이름은 내부 클래스와 JNI를 포함합니다.

클래스에 방법이 없다고 말합니다. myorg.vignettemodules.customregistration.NewsCategoryVAPDAO ~라고 불리는 getEmailContentByID 그것은 받아들입니다 int 인수 [(i)로 표시됨] 및 객체 (L에 의해 발표)를 반환합니다. myorg/pushemail/model/EmailContent ( ';'에 의해 폐쇄).

L과 I 캐릭터는 Java의 내부 클래스 사양에서 클래스 이름과 정수를 나타내는 데 사용됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top