按java的基本类型自动转换规则,取值范围窄的可以自动转换为宽的,如:char可以转换为int、string等,为什么long不能自动转为string呢,毕竟无论整型取值范围再长也能用string类型表示吧。求教大神详细解释。
包括double,float,boolean等都是一样的道理。
追问你好,我说的是自动转换,不是显式地调用String的方法啊,比如:long t1=10l; String t2 = "";
t2 = t1;这样是不行的,但是 char t1 = 'a'; int t2 = t1; 编译器是自动给你把char型转换为int型的了。
char t1 = 'a'; int t2 = t1; 这个你就理解错了。
char t1 = 'a' ;
int t2 = t1; 这个转换并不是把a转成数字,例如:
char t1 = '1' ;
int t2 = t1; 这个得到的不是1,因为这个根本就不是类型转换。是值的另一种表示,就像是15的十进制是15,十六进制是F。
什么叫不能转换?
Long lg = 1l;