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.


$config[zx-auto] not found$config[zx-overlay] not found