有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么不在构造函数中调用短数据类型

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的有损转换


共 (2) 个答案

  1. # 1 楼答案

    以上代码不会产生错误。 它宁愿显示一个输出,即con 3。 短类型可以在构造函数中调用。 把它打短

    Overloaded o = new Overloaded((short)127);
    
  2. # 2 楼答案

    表达式127不是类型short,而是类型int

    如果希望有short类型的表达式,请使用(short) 127,如中所示:

    Overloaded o = new Overloaded((short)127);
    

    那么你的例子就行了