Java 中的自动装箱原语有什么意义?
What's the point of autoboxing primitives in Java?
拥有 Integer
、Boolean
等并称它们为“...装箱”有什么意义,如果它们的行为不像您可以传递的盒装对象 "by ref" 和拆箱改变他们的价值?
这里有一个 "unboxing" 的例子,我发现它并不是真正的拆箱。
public static void main(String[] args) {
Boolean x = true;
foo(x);
System.out.println(x);
Integer num = 9;
bar(num);
System.out.println(num);
}
private static void bar(Integer num) {
num = 5;
}
static void foo(Boolean x){
boolean y = false;
x = y;
}
它打印 true 和 9 btw。
拥有这些包装器的意义 类 主要用于泛型。在 Java 中,如果我想创建一个整数 ArrayList,我不能执行以下操作:
ArrayList<int> intList = new ArrayList<int>()
这是行不通的,因为泛型只适用于对象,而 "int" 是原始类型。通过使用包装器,
ArrayList<Integer> intList = new ArrayList<Integer>()
我可以解决这个问题。
Autoboxing is the automatic conversion that the Java compiler makes
between the primitive types and their corresponding object wrapper
classes. For example, converting an int to an Integer, a double to a
Double, and so on. If the conversion goes the other way, this is
called unboxing.
Reference :https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html
Java 中的自动装箱原语有什么意义?
可以节省您一些时间。
int s=4;
Integer s1=new Integer(s); //without autoboxing
Integr s1=s; //autoboxing (saves time and some code)
int k=s1; //unboxing
为什么Integer/Float/Decimal对象?(用整数来解释)
Integers/Floats/Doubles etc.
的 ArrayList,如 Maroun 的回答所述。
Java 库 returns 整数对象中的一些内置函数。因此,您可以使用自动装箱而不是使用 returnedIntegerObject.intValue()
将值简单地存储在 primitive int
中。
让我们将String s="5"
转换为整数。
- 使用内置函数
public static Integer valueOf(String s)
。如您所见,此函数的 return 类型是 Integer
而不是 int
.
没有自动装箱:
Integer a=Integer.valueOf(s);
int b= a.intValue(); //getting the primitive int from Integer Object
自动装箱
int b=Integer.valueOf(s); //saves code and time
拥有 Integer
、Boolean
等并称它们为“...装箱”有什么意义,如果它们的行为不像您可以传递的盒装对象 "by ref" 和拆箱改变他们的价值?
这里有一个 "unboxing" 的例子,我发现它并不是真正的拆箱。
public static void main(String[] args) {
Boolean x = true;
foo(x);
System.out.println(x);
Integer num = 9;
bar(num);
System.out.println(num);
}
private static void bar(Integer num) {
num = 5;
}
static void foo(Boolean x){
boolean y = false;
x = y;
}
它打印 true 和 9 btw。
拥有这些包装器的意义 类 主要用于泛型。在 Java 中,如果我想创建一个整数 ArrayList,我不能执行以下操作:
ArrayList<int> intList = new ArrayList<int>()
这是行不通的,因为泛型只适用于对象,而 "int" 是原始类型。通过使用包装器,
ArrayList<Integer> intList = new ArrayList<Integer>()
我可以解决这个问题。
Autoboxing is the automatic conversion that the Java compiler makes between the primitive types and their corresponding object wrapper classes. For example, converting an int to an Integer, a double to a Double, and so on. If the conversion goes the other way, this is called unboxing. Reference :https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html
Java 中的自动装箱原语有什么意义?
可以节省您一些时间。
int s=4; Integer s1=new Integer(s); //without autoboxing Integr s1=s; //autoboxing (saves time and some code) int k=s1; //unboxing
为什么Integer/Float/Decimal对象?(用整数来解释)
Integers/Floats/Doubles etc.
的 ArrayList,如 Maroun 的回答所述。Java 库 returns 整数对象中的一些内置函数。因此,您可以使用自动装箱而不是使用
returnedIntegerObject.intValue()
将值简单地存储在primitive int
中。
让我们将String s="5"
转换为整数。
- 使用内置函数
public static Integer valueOf(String s)
。如您所见,此函数的 return 类型是Integer
而不是int
.
没有自动装箱:
Integer a=Integer.valueOf(s);
int b= a.intValue(); //getting the primitive int from Integer Object
自动装箱
int b=Integer.valueOf(s); //saves code and time