Я часто вижу, что хочу просто напечатать (используя неявный toString() каждого объекта) каждый аргумент метода в Java. Есть ли быстрый способ сделать это?
В 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 и узнает о себе АОП