Napomena Java @SafeVarargs
1. Pregled
U ovom brzom vodiču pogledati ćemo @SafeVarargs bilješka.
2. The @SafeVarargs Bilješka
Java 5 predstavila je koncept varargova ili parametra metode promjenjive duljine, kao i parametrizirane vrste.
Njihova kombinacija može nam stvoriti probleme:
javni statički T [] nesiguran (T ... elementi) {povratni elementi; // nesigurno! nikad ne vraćajte parametrizirani niz varargova} javni statički T [] slomljen (T sjeme) {T [] biljka = nesigurno (sjeme, sjeme, sjeme); // slomljen! Ovo će biti Predmet [] bez obzira na to što je T postrojenje za povrat; } javna statička void biljka () {String [] biljke = slomljeno ("sjeme"); // ClassCastException}
Te probleme može kompajler potvrditi i zato daje upozorenja kad god se ta dva kombiniraju, kao u slučaju nesigurno:
upozorenje: [neoznačeno] Moguće zagađenje gomile iz parametariziranog vararg tipa T javni statički T [] nesigurno (T ... elementi) {
Ova se metoda, ako se koristi pogrešno, kao u slučaju slomljen, zagađivat će an Objekt[] niz u hrpu umjesto predviđenog tipa b.
Da bismo ovo upozorenje zgnječili, možemo dodati znak @SafeVarargs bilješka na konačnim ili statičkim metodama i konstruktorima.
@SafeVarargs je kao @SupressWarnings na taj način što nam omogućuje da izjavimo da je određeno upozorenje kompajlera lažno pozitivno. Jednom kada osiguramo da su naša djela sigurna, možemo dodati ovu napomenu:
stroj javne klase {verzije privatnog popisa = novi ArrayList (); @SafeVarargs public final void safe (T ... toAdd) {for (T version: toAdd) {inačice.add (verzija); }}}
Sigurna upotreba vararga sama po sebi je lukav koncept. Za više informacija Josh Bloch ima sjajno objašnjenje u svojoj knjizi Effective Java.
3. Zaključak
U ovom kratkom članku vidjeli smo kako se koristi @SafeVarargs napomena u Javi.
Cjeloviti izvorni kod za primjere možete pronaći na GitHubu.