小编Nur*_*tcu的帖子

促进原始类型

我有一个关于在Java中推广原始类型的问题.正如我们在下面的示例中所看到的,由于类型不匹配的错误,其中一个方法无法编译.每个方法返回相同的值但是使用不同的类型.

long当包装类的版本Long失败时,原始方法的版本可以正常工作.这是因为语句中的int文字return将首先提升为更宽的基本类型(例如long),然后提升到相应的包装类Integer等等.由于Integer不是Long编译器的子类会产生错误.

但是为什么包装类的版本Byte没有任何错误?编译器究竟做了什么?

long getPrimitiveLong() {
    return 12; // valid
}

Long getWrapperLong() {
    return 12; // Error: type mismatch
}

Byte getWrapperByte() {
    return 12; // valid
}
Run Code Online (Sandbox Code Playgroud)

java primitive types casting wrapper

4
推荐指数
1
解决办法
417
查看次数

标签 统计

casting ×1

java ×1

primitive ×1

types ×1

wrapper ×1