Spesso mi capita di voler stampare (usando implicitamente toString() di ogni oggetto) ogni argomento di un metodo in Java. C'è un modo rapido per realizzare questo?In Java, c'è un modo rapido per scaricare tutti gli argomenti su un metodo?
risposta
Il linguaggio di programmazione Java non ha un costrutto per farlo. Tuttavia, è possibile farlo con uno dei pacchetti AOP (Aspect Oriented Programming), ad esempio AspectJ.
In particolare, questa discussione potrebbe essere un buon punto di partenza su come raggiungere questo obiettivo:
http://dev.eclipse.org/mhonarc/lists/aspectj-users/msg09939.html
La mia opinione personale, tuttavia, è che la maggior parte del tempo AOP è un eccessivo spaventoso.
AGGIORNAMENTO: Oh, here's un modo più semplice utilizzando Spring AOP, presupponendo che sia possibile utilizzare Spring. Generalmente, Spring è molto più facile da usare rispetto ad AspectJ puro.
Overkill spaventoso? Potresti spiegarlo un po '? –
Bene, in pratica stai modificando il comportamento del tuo programma tramite un meccanismo completamente esterno alla lingua e al tuo codice sorgente. Sono diffidente nei confronti di cose del genere. Fanno il debug e leggono il codice sorgente (specialmente senza IDE AOP-aware) un processo molto più impegnativo. –
Non esiste un modo generico incorporato nella lingua stessa. Tuttavia, ci sono alcune cose che potrebbero serie i vostri bisogni:
- vostro IDE potrebbe avere le macro per generare un
println
- Se siete interessati solo a argomenti di dumping attraverso qualche strato, e tutte le chiamate sono attraverso metodi di interfaccia, puoi usare i proxy Java.
- è possibile utilizzare alcuni manipolazione bytecode, sia posta compilare o durante classloading
- lasciare che qualcun fare il duro lavoro di 3 #, e imparare da soli AOP
- 1. C'è un modo per iterare su tutti gli argomenti passati a una funzione in Elixir?
- 2. Esiste un "modo più rapido" per costruire stringhe in Java?
- 3. Java: ottieni gli argomenti passati a un metodo?
- 4. Passando tutti gli argomenti a un costruttore
- 5. Modo rapido per correggere gli avvisi XCode
- 6. C'è un modo per evitare gli argomenti posizionali in bash?
- 7. Esiste un modo sicuro per scaricare java JDK?
- 8. Modo rapido per sommare una proprietà di tutti gli oggetti all'interno di un NSSet?
- 9. Un modo semplice per annullare l'iscrizione per tutti gli argomenti sottoscritti con GCM (dispositivo iOS)
- 10. Come posso scaricare tutti gli stack di un processo Go?
- 11. Metodo Java con argomenti illimitati
- 12. come scaricare un file in java?
- 13. Elenca tutti gli argomenti da un file CHM
- 14. ggplot2: C'è un modo per sovrapporre un singolo grafico a tutti gli aspetti in un ggplot
- 15. Numero variabile di Java o argomenti per un metodo
- 16. C'è un modo per accedere agli argomenti del metodo in Ruby?
- 17. Trova tutti gli usi di un metodo in vim
- 18. C'è un modo per scaricare l'almanacco GPS?
- 19. Javascript: esiste un modo per distruggere tutti gli elementi di un array con un solo comando?
- 20. Come iscriversi a tutti gli argomenti di un broker MQTT
- 21. PHP: ottieni gli argomenti del metodo?
- 22. C'è un modo per impostareTitolo su un UIButton che aggiorna tutti gli UIControlStates contemporaneamente?
- 23. Esiste un modo più rapido per confrontare i dati tra gli array dinamici in VBA?
- 24. Qual è il modo migliore per tagliare() tutti gli elementi in un elenco <String>?
- 25. R: c'è un modo per catturare tutti i valori degli argomenti delle funzioni
- 26. Come interrompere gli argomenti del programma Java in errore per gli argomenti VM?
- 27. C'è un modo rapido per mostrare il codice di un metodo dichiarato nella Console Scala?
- 28. Come posso espandere gli argomenti in Java?
- 29. C'è un modo rapido per creare un set?
- 30. C'è un modo per annotare un metodo rapido come richiede una chiamata all'implementazione della sua superclasse
Utilizzare un debugger e fermare le cose dumping. – Matt
Cosa, pensi che questo sia rubino? – tjarratt
@Matt niente di sbagliato con la registrazione delle informazioni dettagliate –