gpt4 book ai didi

java - 静态函数中的返回值 - Java

转载 作者:搜寻专家 更新时间:2023-10-31 08:15:13 25 4
gpt4 key购买 nike

我有两个功能。一个工作正常,而另一个不编译。无法找出原因。你能帮我一下吗?

这很好用

 static byte method1() {
final short sh1 = 2;
return sh1;
}

这个不编译

static byte method2(final short sh2) {
return sh2;
}

最佳答案

在您的第一个示例中,sh1final,并且有一个值可以在编译时确定为“阉割”为byte。实际上,它是一个常数。如果您删除 final,它将不再编译。

在您的第二个示例中,编译器无法确定您的方法参数是“安全的”,您必须进行显式转换,如其他答案所述。

有关细节,请参阅 here (JLS 引用和所有)。但是一个简单的例子:

final byte b1 = 127;
final byte b2 = 1;
final byte b = b1 + b2; // <-- FAIL: 128 greater than Byte.MAX_VALUE

final byte b1 = 12;
final byte b2 = 3;
final byte b = b1 + b2; // <-- SUCCESS: 15 fits

关于java - 静态函数中的返回值 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17165432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com