Java使用括号转换为Integer的Short

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java使用括号转换为Integer的Short相关的知识,希望对你有一定的参考价值。

我有以下代码具有原始包装类:

// setValue expects Integer (class)
// getValue returns Short (class)
intLength.setValue(shortLength.getValue());

Netbeans将此标记为错误“不兼容类型:Short无法转换为Integer”,并且我收到编译错误,这是有道理的。

但是,如果我添加一组额外的括号:

// setValue expects Integer (class)
// getValue returns Short (class)
intLength.setValue((shortLength.getValue()));

错误消失,代码编译并运行。任何人都可以告诉我额外的括号正在做什么/为什么括号做铸造。谢谢。

答案

正如安德烈亚斯在评论中所说的那样;这是一个NetBeans问题,NetBeans并不总是遵循java规范,因为如果你检查了Java Language Specificate, Parenthesized Expressions,它根本不会改变类型。

您可以使用javac和java命令手动检查该代码,并且两次都会收到编译错误。

感谢Andreas

以上是关于Java使用括号转换为Integer的Short的主要内容,如果未能解决你的问题,请参考以下文章

Java基础之数据类型及其转换

java大神 字符串的转换基本数据类型

Short与Integer互转

java int转short

java中,如何将Short(是对象Short)转换成基本类型int??在线等

java字符(串)和数值类型转换