Почему компилятор Java не предоставляет информацию о номере строки вызывающего абонента? - PullRequest
0 голосов
/ 17 апреля 2020

C# имеет такие действительно хорошие аннотации компилятора: CallerMemberName, CallerFilePath CallerLineNumber, которые (как говорят названия) - имя участника вызывающего абонента, путь к файлу и номер строки. Это делает такие вещи, как запись номеров строк исходного кода, настолько простым (и эффективным).

До StackWalker Java 9, кажется, единственный вариант - использовать getStackTrace(), что очень дорого. Почему Java потребовалось так много времени, чтобы включить решение?

Кроме того, насколько эффективен StackWalker Java 9 по сравнению с простым вычисляемым параметром времени компиляции? Я полагаю, что разница огромна ... напрашивается вопрос: почему Java не может иметь вычисленные параметры времени компиляции?

...