Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在不自动取消装箱的情况下,将强制转换对象简明地转换为基本类型的括号放在何处?_Java_Type Conversion_Primitive Types_Autoboxing - Fatal编程技术网

Java 在不自动取消装箱的情况下,将强制转换对象简明地转换为基本类型的括号放在何处?

Java 在不自动取消装箱的情况下,将强制转换对象简明地转换为基本类型的括号放在何处?,java,type-conversion,primitive-types,autoboxing,Java,Type Conversion,Primitive Types,Autoboxing,使用自动取消装箱时,此语句将自动工作: int myPrimitive = (Integer) doIt(); 但是,如果我想在一行中显式地从整数转换为整数,我必须把括号放在哪里?您可以这样做: int myPrimitive = (int) (Integer) doIt(); 但正如您所说,自动拆箱将为您提供该功能 一个不好的示例显示链强制转换有效(永远不要使用此代码): 链投射的问题是,无论你在哪里使用它,投射都是合法的,你可以移除中介;或者强制转换只会导致ClassCastExcept

使用自动取消装箱时,此语句将自动工作:

int myPrimitive = (Integer) doIt();
但是,如果我想在一行中显式地从
整数
转换为
整数
,我必须把括号放在哪里?

您可以这样做:

int myPrimitive = (int) (Integer) doIt();
但正如您所说,自动拆箱将为您提供该功能

一个不好的示例显示链强制转换有效(永远不要使用此代码):

链投射的问题是,无论你在哪里使用它,投射都是合法的,你可以移除中介;或者强制转换只会导致
ClassCastException
。所以你不应该使用它

你可以这样做:

int myPrimitive = (int) (Integer) doIt();
但正如您所说,自动拆箱将为您提供该功能

一个不好的示例显示链强制转换有效(永远不要使用此代码):


链投射的问题是,无论你在哪里使用它,投射都是合法的,你可以移除中介;或者强制转换只会导致
ClassCastException
。因此您永远不应该使用它

编译器为您解除整数的装箱,或者您自己解除整数的装箱-这是无法避免的

所以你要么做,要么做

int myPrimitive = ((Integer) doIt()).intValue();

或者更简单地说,更改
doIt()
以返回一个
int
,因为您似乎想要处理
int
s而不是(可以为空)
Integer
s。

要么编译器为您解算整数,要么您自己解算整数,这是无法避免的

所以你要么做,要么做

int myPrimitive = ((Integer) doIt()).intValue();

或者更简单地说,更改
doIt()
以返回
int
,因为您似乎想要处理
int
s而不是(可以为空)
Integer
s。我的后续操作是“为什么?您想做什么?”:)“我想在一行中显式地将整数转换为int”。你就是这么做的!我的后续内容是“为什么?你想做什么?”:)“我想在一行中显式地从整数转换为整数”。你就是这么做的!从整数到整数的转换是自动取消装箱的一种情况。Integer.intValue()方法将执行显式取消装箱。但我同意一件事:链式铸造=永远不要使用这个!(+1)埃里克·卡尔,我同意这是一个拆箱,但不是自动拆箱。关于自动装箱,这说明显式强制转换/转换称为装箱,而自动装箱将自动完成。从整数到int的强制转换是自动取消装箱的一种情况。Integer.intValue()方法将执行显式取消装箱。但我同意一件事:链式铸造=永远不要使用这个!(+1)埃里克·卡尔,我同意这是一个拆箱,但不是自动拆箱。关于自动装箱,这说明显式强制转换/转换称为装箱,而自动装箱将自动完成。