Wrapper (tip de date)

În programarea orientată pe obiecte, un wrapper peste un tip non-obiect ( tip boxed ) este un tip de date obiect conceput pentru a stoca o valoare a unui tip non-obiect. De exemplu, în Java , o clasă Integereste un superset de tip primitiv int.

Pentru ce?

Autowrap (autoboxing) și autoexpand

În multe limbi, wrapper-urile sunt incluse în sintaxa limbii. Apoi, dacă funcția necesită Integersau Object, va „împacheta” automat numărul într-un tip de ambalaj. De exemplu, în codul Java

void someFunc ( Object x ) {} someFunc ( 4 );

echivalent cu codul

someFunc ( Integer . valueOf ( 4 ));

Aceasta este rotirea automată. În mod similar, extinderea automată funcționează în cod

int x = 1 + Integer . valueOf ( 2 );

Aici tipul este Integerextins înapoi la int.

Atât Java, cât și C# Objectnu se extind înapoi la int: astfel, următorul cod va duce la o eroare

Obiect x = Integer . valueOf ( 2 ); int y = x ; // eroare de tipar