A menudo me encuentro queriendo simplemente imprimir (usando implícita toString() de cada objeto) cada argumento de un método en Java. ¿Hay una forma rápida de lograr esto?En Java, ¿hay una forma rápida de volcar todos los argumentos a un método?
Respuesta
El lenguaje de programación Java no tiene una construcción para hacer esto. Sin embargo, puede hacerlo con uno de los paquetes AOP (Programación Orientada a Aspectos), como AspectJ.
En particular, este hilo puede ser un buen punto de partida sobre cómo lograr esto:
http://dev.eclipse.org/mhonarc/lists/aspectj-users/msg09939.html
Mi opinión personal, sin embargo, es que la mayoría de las veces AOP es una exageración miedo.
ACTUALIZACIÓN: Oh, here's una manera más fácil utilizando Spring AOP, suponiendo que puede utilizar Spring. En general, Spring es mucho más fácil de usar que el puro AspectJ.
Scary Overkill? ¿Podrías explicar eso un poco? –
Bueno, básicamente estás modificando el comportamiento de tu programa a través de un mecanismo completamente externo al idioma y tu código fuente. Soy cauteloso de cosas como esas. Hacen que depurar y leer el código fuente (especialmente sin IDE con AOP) sea un proceso mucho más desafiante. –
No hay una forma genérica incorporada en el lenguaje en sí. Sin embargo, hay algunas cosas que podrían habitación sus necesidades:
- Su IDE puede tener macros para generar un
println
- Si sólo está interesado en los argumentos de dumping a través de alguna capa, y todas las invocaciones son a través de métodos de interfaz, puede usar Java Proxies.
- Usted puede utilizar alguna manipulación de código de bytes, o bien después de compilación o durante la carga de clase
- dejar que alguien haga el trabajo duro de # 3, y aprender a sí mismo AOP
- 1. pasar todos los argumentos a un constructor
- 2. La forma más rápida de contar todos los resultados en Lucene (java)
- 3. Volcar stacktraces de todos los hilos activos
- 4. Forma más rápida de volcar el objeto del diccionario (dict) de Python a una tabla MySQL?
- 5. Pass todos los argumentos a otra función
- 6. ¿Hay una forma rápida de desvincular claves en Emacs?
- 7. Pasando todos los argumentos de una función a otra función
- 8. ¿Existe una "forma más rápida" de construir cadenas en Java?
- 9. ¿Forma rápida de sumar una propiedad de todos los objetos dentro de un NSSet?
- 10. ¿Hay alguna manera de volcar un seguimiento de pila sin lanzar una excepción en java?
- 11. Una forma curiosa de pasar un parámetro a un método
- 12. Obtener todos los argumentos y valores pasados a una función
- 13. ¿Cómo volcar todos los registros XMM en gdb?
- 14. MongoDB: ¿Cuál es la forma más rápida de actualizar todos los registros en una colección?
- 15. Forma pitónica de repetir una llamada a un método en diferentes argumentos finitos
- 16. ¿Hay alguna manera de obtener una matriz de argumentos pasados a un método?
- 17. ¿Cómo se podría llamar a std :: forward en todos los argumentos en una función variadica?
- 18. Volcar todos los valores en .vars en Freemarker
- 19. Forma más rápida de convertir XML a JSON en Java
- 20. ¿Hay una forma correcta de pasar argumentos en slf4j?
- 21. Cómo volcar los símbolos en un archivo .a
- 22. ¿Hay una forma más rápida de recorrer miles de elementos?
- 23. Acceda a todos los argumentos de funciones en R
- 24. Ejecutar un método Java a una hora establecida todos los días
- 25. ¿La forma más rápida de escribir una matriz de enteros en un archivo en Java?
- 26. ¿Hay una forma más rápida de cargar mysqldumps?
- 27. ¿Cómo puedo encontrar todos los métodos que llaman a un método determinado en Java?
- 28. ¿Hay alguna forma de extraer/actualizar todos los subrepos?
- 29. Volcar una matriz dispersa en un archivo
- 30. OpenCV vía python: ¿Hay una forma rápida de cero píxeles fuera de un conjunto de rectángulos?
El uso de un depurador y dejar de verter cosas. – Matt
¿Qué, crees que es ruby? – tjarratt
@Matt no hay nada de malo en el registro de información detallada –