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);
}
}
错误:从int到short
的可能有损转换答案 0 :(得分:2)
表达式127
不是short
类型 - 而是int
类型。
如果您想要一个short
类型的表达式,请使用(short) 127
,如:
Overloaded o = new Overloaded((short)127);
然后你的例子就可以了。
答案 1 :(得分:2)
所有数字常量默认为整数类型,当您想将整数保存到字节/短字段时,需要使用强制转换narrowing conversion进行强制转换:
(byte)127
(short)127
或者在你的情况下:
Overloaded o = new Overloaded((byte)127);
或者如果你想做空:
Overloaded o = new Overloaded((short)127);
答案 2 :(得分:-2)
以上代码不会产生错误。 它宁愿显示输出-con 3被调用。 可以在构造函数中调用短类型。 Typecast it to short
14-06-2016 12:10:pm