gpt4 book ai didi

Java 转换错误?

转载 作者:行者123 更新时间:2023-12-01 22:42:43 24 4
gpt4 key购买 nike

有人知道为什么编译器无法将值“7”转换为“short”吗?显式转换有效,但传递参数时无效!!!

class Alien {
String invade(short ships) { return "a few"; }
String invade(short... ships) { return "many"; }
}
public class Wind {
public static void main(String [] args) {
short temp = 7;
System.out.println(new Alien().invade(7));
}
}

最佳答案

整数文字(这就是我们在这里讨论的)是 int值,除非它们有后缀来表明它们是 long相反,值。

来自section 3.10.1 of the specification :

An integer literal is of type long if it is suffixed with an ASCII letter L or l (ell); otherwise it is of type int (§4.2.1).

但是选角很好。也完全有可能有一个不是文字的常量。例如:

public static final short THIS_IS_A_SHORT = 7;

这里THIS_IS_A_SHORTshort 类型的常量。在这种情况下,你甚至不需要类型转换,因为这是一项任务。作业受JLS section 5.2约束,其中包括:

A narrowing primitive conversion may be used if the type of the variable is byte, short, or char, and the value of the constant expression is representable in the type of the variable.

方法参数进行赋值转换。

关于Java 转换错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14264397/

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