Java中Short类的valueof方法问题

public class baoz {
    public static void main(String[] args) {

   Short a=Short.valueOf(100);
        //Long a=Long.valueOf(100);
        System.out.println(a);
    }
}

报错Error:(8, 17) java: 对于valueOf(int), 找不到合适的方法
    方法 java.lang.Short.valueOf(java.lang.String)不适用
      (参数不匹配; int无法转换为java.lang.String)
    方法 java.lang.Short.valueOf(short)不适用
      (参数不匹配; 从int转换到short可能会有损失)

 

但是这样就没错

public class baoz {
    public static void main(String[] args) {
        Long a=Long.valueOf(100);
        System.out.println(a);
    }
}

这俩写法不是一样的吗,不知道哪里出了问题

short中都没有int类型的构造方法

数字从int转换为short可能会失败(溢出),因为它是一个缩小的基元转换

你可以强转再操作

Short a = Short.valueOf((short) 100);