Genment
public static void main(String []args){
int a = 22;
long b = 33;
Long c = new Long(a);
Long d = new Long(b);
Integer i = new Integer(44);
Long e = new Long(i);
}以上代码都可以正常运行,int 是可以直接转换为包装类 Long的,相反则不可以,因为如果可以的话,是会丢失数据的,JAVA是不允许这种做法的。低位数的int 转换成 高位数的long 是不需要强制转换的。long a = 100;
int b = a; // 报错,因为会丢失数据。
long a = 100;
int b = (long)a; // 同样会报错,因为会丢失数据。
int a = 100;
long b = a; // 正常,不会丢失数据。