Java 为什么不在构造函数中调用短数据类型
错误:从int到short的可能有损转换表达式Java 为什么不在构造函数中调用短数据类型,java,Java,错误:从int到short的可能有损转换表达式127不是short类型,而是int类型 Overloaded o = new Overloaded((short)127); 如果要使用类型为short的表达式,请使用(short)127,如中所示: public class Overloaded { Overloaded(byte i) { System.out.println(" con 1 is called "); } Overloaded(
127
不是short
类型,而是int
类型
Overloaded o = new Overloaded((short)127);
如果要使用类型为short
的表达式,请使用(short)127
,如中所示:
public class Overloaded {
Overloaded(byte i) {
System.out.println(" con 1 is called ");
}
Overloaded(short j) {
System.out.println(" con 2 is called ");
}
/*
* Overloaded(int n) {
*
*
* System.out.println(" con 3 is called ");
*
*
* }
*/
/*
* Overloaded(long m) {
*
* System.out.println(" con 4 is called ");
*
*
* }
*/
/*
* Overloaded(float m) {
*
* System.out.println(" con 5 is called ");
*
*
* }
*/
public static void main(String[] t) {
Overloaded o = new Overloaded(127);
}
}
然后,您的示例将起作用。默认情况下,所有数值常量都是整数类型,当您希望将整数保存到字节/短字段时,需要使用强制转换:
Overloaded o = new Overloaded((short)127);
或者在您的情况下:
(byte)127
(short)127
或者如果你想做空:
Overloaded o = new Overloaded((byte)127);
上面的代码不会产生错误。 它宁愿显示一个输出-con3被调用。 短类型可以在构造函数中调用。 把它打短
Overloaded o = new Overloaded((short)127);
请添加解释您的问题的文本只是警告一句:短值限制在-32768到+32767之间,这意味着例如
(short)32768
将导致-32768。要获得更好的答案,请尝试进一步解释。为什么它不会产生错误,为什么你的答案会有效。