В Java есть быстрый способ сбрасывать все аргументы в метод?

Я часто вижу, что хочу просто напечатать (используя неявный toString() каждого объекта) каждый аргумент метода в Java. Есть ли быстрый способ сделать это?

Ответ 1

Язык программирования Java не имеет такой конструкции. Однако вы можете сделать это с одним из пакетов AOP (Aspect Oriented Programming), таких как AspectJ.
В частности, этот поток может быть хорошей отправной точкой в ​​том, как добиться этого:

http://dev.eclipse.org/mhonarc/lists/aspectj-users/msg09939.html

Мое личное мнение, однако, заключается в том, что большую часть времени АОП является страшным излишеством.

ОБНОВЛЕНИЕ: О, здесь проще с помощью Spring AOP, предполагая, что вы можете использовать Spring. Как правило, Spring намного проще в использовании, чем чистый AspectJ.

Ответ 2

В сам язык нет общего пути. Однако есть некоторые вещи, которые могут удовлетворить ваши потребности:

  • В вашей среде IDE могут быть макросы для создания println
  • Если вас интересуют только демпинг-аргументы на каком-то уровне, а все вызовы - через методы интерфейса, вы можете использовать Java-прокси.
  • Вы можете использовать некоторые манипуляции с байт-кодами, либо компилировать пост, либо во время загрузки классов
  • Пусть кто-то сделает трюк №3 и узнает о себе АОП