English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在本教程中,我们将借助示例学习Java 包装类(Wrapper)。
Java中的包装类用于将原始类型(int,char,float等)转换为相应的对象。
8每个基本类型中的每一个都有对应的包装器类。
原始类型 | 包装类 |
---|---|
byte | Byte |
boolean | Boolean |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
还可以使用valueOf()方法将原始类型转换为相应的对象。
class Main { public static void main(String[] args) { //Crear tipo primitivo int a = 5; double b = 5.65; //Convertir a objeto de envoltura Integer aObj = Integer.valueOf(a); Double bObj = Double.valueOf(b); if(aObj instanceof Integer) { System.out.println("Crear un objeto Integer."); } if(bObj instanceof Double) { System.out.println("Crear un objeto Double."); } } }
Resultado de salida
Crear un objeto Integer. Crear un objeto Double.
En el ejemplo anterior, usamos el método valueOf() para convertir tipos primitivos a objetos.
Aquí, usamos el operador instanceof para verificar si el objeto generado pertenece al tipo Integer o Double.
Pero, el compilador de Java puede convertir directamente los tipos primitivos a los objetos correspondientes. Por ejemplo,
int a = 5; //Convertir a objeto Integer aObj = a; double b = 5.6; //Convertir a objeto Double bObj = b;
Este proceso se llamaEmpaquetado automático.Para obtener más información, visiteJava 自动装箱和拆箱.
Atención:también podemos usar el constructor de la clase de envoltura (Wrapper) para convertir tipos primitivos a objetos de envoltura.Pero en Java 9Después de eso, ya no se utiliza el constructor.
Para convertir un objeto a un tipo primitivo, podemos usar el método de valor correspondiente en cada clase de envoltura (intValue(), doubleValue(), etc.).
class Main { public static void main(String[] args) { //Crear objetos de envoltura Integer aObj = Integer.valueOf(23); Double bObj = Double.valueOf(5.55); //Convertir a tipo primitivo int a = aObj.intValue(); double b = bObj.doubleValue(); System.out.println("El valor de a: ") + a); System.out.println("El valor de b: ") + b); } }
Resultado de salida
El valor de a: 23 El valor de b: 5.55
En el ejemplo anterior, usamos los métodos intValue() y doubleValue() para convertir los objetos Integer y Double a los tipos básicos primitivos correspondientes.
Pero, el compilador de Java puede convertir automáticamente los objetos al tipo primitivo correspondiente. Por ejemplo,
Integer aObj = Integer.valueOf(2); //Convertir a tipo int int a = aObj; Double bObj = Double.valueOf(5.55); //Convertir a tipo double double b = bObj;
Este proceso se llamaDesempaquetado.Para obtener más información, visiteJava 自动装箱和拆箱.
A veces, en Java, podríamos necesitar usar objetos en lugar de tipos de datos primitivos. Por ejemplo, al usar conjuntos.
// Error ArrayList<int> list = new ArrayList<>(); //Funcionamiento normal ArrayList<Integer> list = new ArrayList<>();
En este caso, las clases de paquete pueden ayudarnos a usar tipos de datos primitivos como objetos.
Podemos almacenar valores nulos en objetos de paquete. Por ejemplo,
//Se generará un error int a = null; // Funcionamiento normal Integer a = null;
AtenciónLos tipos primitivos son más eficientes que los tipos de objeto correspondientes. Por lo tanto, se recomienda siempre usar tipos primitivos cuando se necesita eficiencia.