Может ли метод получить доступ к локальной переменной вызывающего абонента?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Может ли метод получить доступ к локальной переменной вызывающего абонента?

Сообщение Anonymous »

Я бы хотел, чтобы в выводе использовались существительные в единственном числе, если сообщаемое количество равно одному. В настоящее время я продолжаю делать такие вещи, как:

Код: Выделить всё

logger.debug("Got {} row{}", rows, rows == 1 ? "" : 's');
но это утомительно.
Итак, я думаю о методе, который возвращал бы всю строку «1 строка» или «5 строк» в зависимости от значения. Статическая строка print(int value, String name) проста в использовании, но утомительна в использовании, она будет вызываться как printable(rows, "row"), что избыточно для любого, кто читает код.
Возможно, в Java достаточно одного аргумента? Один из:
  • Код: Выделить всё

    printable(rows)
     — вызываемый метод ищет имя переданной ему переменной, чтобы создать существительное (единственное или множественное число в зависимости от значения).
  • Код: Выделить всё

    printable("rows")
     — вызываемый метод ищет значение переменной в области вызывающего объекта (по указанному имени)?
Нечто подобное можно сделать с помощью препроцессора C во время компиляции, например:

Код: Выделить всё

#define PRINTABLE(val) printable(val, #val)
Может ли Java сделать это (во время выполнения)?
Было бы неплохо, если бы все это можно было пропустить, если текущий уровень журнала в любом случае недостаточно многословно, чтобы фактически вывести запись журнала.

Подробнее здесь: https://stackoverflow.com/questions/789 ... l-variable
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»