Contenedor (tipo de datos)

En la programación orientada a objetos, un contenedor sobre un tipo que no es de objeto (tipo en caja ) es un tipo de datos de objeto diseñado para almacenar un valor de un tipo que no es de objeto. Por ejemplo, en Java , una clase Integeres un superconjunto de un tipo primitivo int.

¿Para qué?

Autowrap (autoboxing) y autoexpand

En muchos idiomas, los envoltorios se incluyen en la sintaxis del idioma. Luego, si la función requiere Integero Object, automáticamente "envolverá" el número en un tipo de contenedor. Por ejemplo, en código Java

void someFunc ( Objeto x ) {} algunaFunc ( 4 );

equivalente al código

someFunc ( Integer . valueOf ( 4 ));

Esto es lo que es la autorrotación. Del mismo modo, la expansión automática funciona en el código.

int x = 1 + entero . valorDe ( 2 );

Aquí el tipo se Integerexpande de nuevo a int.

Tanto Java como C# Objectno se expanden de nuevo a int: por lo tanto, el siguiente código generará un error

Objeto x = Entero . valorDe ( 2 ); int y = x ; // error de encasillado