Non ho capito questa funzionalità di Java. So che rende la codifica più facile e talvolta sembra più ordinata, ma a che serve? Al contrario, sento che è meglio visualizzare gli avvertimenti, poiché in futuro ognuno può riferirli prima di apportare modifiche al codice. Questo @SuppressWarnings aumenta l'efficienza di complimento O è secondo gli standard di codifica?Qual è l'uso di @SuppressWarnings
risposta
altre risposte già spiegato casi d'uso di @SuppressWarnings
molto, ma voglio sottolineare il punto che volte è assolutamente necessario utilizzare @SuppressWarnings
per superare le limitazioni del linguaggio stesso, e in questi casi l'uso di @SuppressWarnings
è assolutamente legale .
In altri casi l'uso di @SuppressWarnings
può essere considerato discutibile, perché in questi casi è sempre possibile eliminare gli avvisi modificando il codice (anche se, ovviamente, non è sempre accettabile).
Ecco alcuni casi comuni quando non si può assolutamente sbarazzarsi di avvertimenti senza @SuppressWarnings
:
- l'implementazione di un insieme generico array-backed (dal momento che non è possibile creare una matrice generica)
- Un
Map
dalle classi a le loro implementazioni (dal momento che non è possibile assegnare valori diversi del parametro di tipo generico a differenti voci di mappa)
L'utilizzo effettivo consiste nell'eliminare gli avvisi. Questo è tutto. Niente di meno, niente di più. Non penso che influenzi l'efficienza della compilazione, ma sicuramente non eseguirò l'efficienza nel tempo.
Quando si ha a che fare con codice legacy che non supporta i generici (Java < = 1.4), questo è l'unico modo valido per sbarazzarsi degli avvisi di trasmissione.
Durante la programmazione, è necessario prestare attenzione agli avvisi del compilatore e, nel migliore dei casi, compilare il codice senza avvisi (e ovviamente errori).
Ma a volte non è possibile eliminare un avviso e SAPERE che il codice è corretto o non può essere modificato. Quindi non vuoi essere disturbato ogni volta dal compilatore che c'è qualcosa di sbagliato.
Quindi puoi sopprimerlo con il comando che hai menzionato.
L'uso di SuppressWarnings
deve essere utilizzato durante la compilazione (quindi, solo il compilatore sa cosa fare quando vede l'annotazione SuppressWarnings
).
I JavaDoc stati:
The set of warnings that are to be suppressed by the compiler in the annotated element. Duplicate names are permitted. The second and successive occurrences of a name are ignored. The presence of unrecognized warning names is not an error: Compilers must ignore any warning names they do not recognize. They are, however, free to emit a warning if an annotation contains an unrecognized warning name.
Ci sono diversi motivi per l'utilizzo di @SuppressWarnings
ma uno dei casi più utili sono:
Avere un progetto esistente con migliaia di avvisi. Vuoi che la tua squadra si occupi degli avvertimenti ora, ma non hai il tempo di correggere tutti gli avvertimenti.
L'annotazione consente di eliminare alcuni avvisi che non possono essere risolti rapidamente e ottenere una base "pulita". Questa base pulita è essenziale poiché nessuno avrà paura di controllare il codice con avvertenze quando ce ne sono migliaia, ma avrà paura quando il codebase non avverrà e tutti gli altri membri del team vedranno immediatamente quando qualcuno è controllo del codice con 2 avvisi o così.
- Si stanno utilizzando librerie di terze parti e si è quindi infastiditi dagli avvisi che non è possibile correggere tranne che per modificare il codice di lib cosa non si desidera nella maggior parte dei casi.
A mio parere, il primo motivo è uno dei migliori casi di utilizzo per @SuppressWarnings
.
- 1. Qual è lo scopo di @SuppressWarnings ("nascondere") in eclissi?
- 2. @SuppressWarnings ("serial")
- 3. Eclipse - @SuppressWarnings ("javadoc") non funziona
- 4. Supportato @SuppressWarnings Valori in Android Studio
- 5. Esiste un equivalente a SuppressWarnings in Scala?
- 6. Che cos'è SuppressWarnings ("deselezionato") in Java?
- 7. Perché dobbiamo utilizzare una variabile intermedia per @SuppressWarnings ("deselezionata")?
- 8. Ignorando gli avvertimenti di Checkstyle con @SuppressWarnings annotazione
- 9. avviso di stampa gradle sebbene SuppressWarnings sia impostato
- 10. Android getAllNetworkInfo() è obsoleto. Qual è l'alternativa?
- 11. Java: elenco completo dei parametri @SuppressWarnings (...) (in Netbeans)?
- 12. Che cosa sono @SuppressWarnings ("deprecazione") e ("inutilizzato") in Android?
- 13. Qual è il contrario di "è"?
- 14. Qual è l'utilità di `enable_shared_from_this`?
- 15. Qual è l'OracleType di ROWNUM
- 16. Qual è il significato di ∃?
- 17. Qual è l'etimologia di 'slug'?
- 18. Qual è lo scopo di. * \\?
- 19. Qual è l'uso di AtomicReferenceArray?
- 20. Qual è l'uso di plist?
- 21. Qual è l'equivalente di "OnBackKeyPress"
- 22. qual è l'intervallo di HOUR_OF_DAY?
- 23. Qual è l'unità di gettimeofday()?
- 24. Qual è l'opposto di Wine?
- 25. Qual è l'interfaccia di IServiceLocator?
- 26. Qual è l'origine di __author__?
- 27. Qual è l'errore di numpy.polyfit?
- 28. Qual è l'uso di System.in.read()?
- 29. Qual è l'uso di singletonList?
- 30. Qual è l'uso di "lenient"?
'SuppressWarnings' non sono utilizzati solo per il supporto di Generics o gli avvisi di cast. –
chi dice che sono :)? –
Rileggi il tuo post. –