Omslag (datatyp)

I objektorienterad programmering är ett omslag över en icke-objekttyp ( boxed type ) en objektdatatyp utformad för att lagra ett värde av en icke-objekttyp. Till exempel, i Java är en klass Integeren superuppsättning av en primitiv typ int.

För vad?

Autowrap (autoboxning) och autoexpandera

På många språk ingår omslag i språkets syntax. Sedan, om funktionen kräver Integereller Object, kommer den automatiskt att "linda" numret i en omslagstyp. Till exempel i Java -kod

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

motsvarande kod

someFunc ( Integer . valueOf ( 4 ));

Det här är vad autorotation är. På samma sätt fungerar autoexpand i kod

int x = 1 + heltal . värdeAv ( 2 );

Här utökas typen Integertillbaka till int.

Både Java och C# Objectexpanderar inte tillbaka till int: följaktligen kommer följande kod att resultera i ett fel

Objekt x = heltal . värdeAv ( 2 ); int y = x ; // typkastningsfel