Java 包装类
Java 包装类
在本教程中,我们将通过示例了解 Java Wrapper 类。
Java 中的包装类用于转换原始类型(int
, char
, float
, etc) 转化为相应的对象。
8 种基本类型中的每一种都有对应的包装类。
原始类型 | 包装类 |
---|---|
byte | Byte |
boolean | Boolean |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
将原始类型转换为包装对象
我们也可以使用 valueOf()
将原始类型转换为相应对象的方法。
示例 1:包装对象的原始类型
class Main {
public static void main(String[] args) {
// create primitive types
int a = 5;
double b = 5.65;
//converts into wrapper objects
Integer aObj = Integer.valueOf(a);
Double bObj = Double.valueOf(b);
if(aObj instanceof Integer) {
System.out.println("An object of Integer is created.");
}
if(bObj instanceof Double) {
System.out.println("An object of Double is created.");
}
}
}
输出
An object of Integer is created. An object of Double is created.
在上面的例子中,我们使用了 valueOf()
将原始类型转换为对象的方法。
在这里,我们使用了 instanceof
运算符检查生成的对象是否为 Integer
或 Double
输入与否。
但是,Java 编译器可以直接将原始类型转换为相应的对象。例如,
int a = 5;
// converts into object
Integer aObj = a;
double b = 5.6;
// converts into object
Double bObj = b;
此过程称为自动装箱 .要了解更多信息,请访问 Java 自动装箱和拆箱。
注意 :我们还可以使用 Wrapper
将原始类型转换为包装对象 类构造函数。但是在 Java 9 之后,构造函数的使用就被抛弃了。
将对象包装成原始类型
要将对象转换为原始类型,我们可以使用相应的值方法(intValue()
, doubleValue()
等)存在于每个包装类中。
示例 2:将对象包装成原始类型
class Main {
public static void main(String[] args) {
// creates objects of wrapper class
Integer aObj = Integer.valueOf(23);
Double bObj = Double.valueOf(5.55);
// converts into primitive types
int a = aObj.intValue();
double b = bObj.doubleValue();
System.out.println("The value of a: " + a);
System.out.println("The value of b: " + b);
}
}
输出
The value of a: 23 The value of b: 5.55
在上面的例子中,我们使用了 intValue()
和 doubleValue()
Integer
的转换方法 和 Double
对象转换成相应的原始类型。
但是,Java 编译器可以自动将对象转换为相应的原始类型。例如,
Integer aObj = Integer.valueOf(2);
// converts into int type
int a = aObj;
Double bObj = Double.valueOf(5.55);
// converts into double type
double b = bObj;
此过程称为拆箱 .要了解更多信息,请访问 Java 自动装箱和拆箱。
包装类的优点
- 在 Java 中,有时我们可能需要使用对象而不是原始数据类型。例如,在使用集合时。
// error ArrayList<int> list = new ArrayList<>(); // runs perfectly ArrayList<Integer> list = new ArrayList<>();
- 我们可以将空值存储在包装对象中。例如,
// generates an error int a = null; // runs perfectly Integer a = null;
注意 :原始类型比相应的对象更有效。因此,当要求效率时,总是推荐使用原始类型。
java