Почему “L” добавляет к моему пути Java?

Для тестирования Вы, вероятно, хотите создать определенный класс (возможно, TestFailedException?) и бросок это вместо того, чтобы угнать другой тип исключительной ситуации.

16
задан KLE 2 October 2009 в 14:46
поделиться

2 ответа

These letters are used by Java to encode the method signature internally. E.g., an "L" announces a following "Object", which is specified by its full class name and followed by a semicolon. The "V" should have been preceeded by parentheses and describes a return type of "void".

Take your example:

java.lang.NoSuchMethodError:
org.springframework.web.context.ContextLoader .getCurrentWebApplicationContext () Lorg / springframework / web / context / WebApplicationContext;

Он говорит, что нет метода в классе org.springframework.web.context.ContextLoader с именем getCurrentContext getCurrentContext [114575] который не принимает аргументов [обозначается () ] и возвращает объект (объявленный посредством L ) с именем ʻorg / springframework / web / context / WebApplicationContext (закрывается ';').

РЕДАКТИРОВАТЬ: Список всех кодов находится в Таблице 3.2 спецификаций JNI .

РЕДАКТИРОВАТЬ2: Еще более авторитетный: раздел 4.3 Дескрипторы из спецификация JVM содержит полную ссылку на формат и коды.

26
ответ дан 30 November 2019 в 16:58
поделиться

Символ L используется для обозначения имени класса во внутренней спецификации класса Java.

См. Спецификация Java VM для подробностей.

И таблица типов полей:

BaseType
B     byte (signed byte)
C     char (Unicode character)
D     double (double-precision floating-point value)
F     float (single-precision floating-point value)
I     int (integer)
J     long (long integer)
L<classname>;     reference (an instance of class <classname>)
S     short (signed short)
Z     boolean (true or false)
[     reference (one array dimension )
9
ответ дан 30 November 2019 в 16:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: