Java使用括号转换为Integer的Short

时间:2017-12-18 00:11:21

标签: java netbeans casting

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

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

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

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

library(vegan)
data(dune)
dune.spec = data.frame(Species = colnames(dune))
species = as.character(dune.spec$Species)

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

2 个答案:

答案 0 :(得分:1)

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

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

感谢Andreas

答案 1 :(得分:-1)

short numShort = 15;
int numInt = (int) new Short(numShort);

或者你的情况

intLength.setValue( (int) new Short(shortLength.getValue()));