我一直在假设,事实上我相信我有经验,在 Java 中用原始数字初始化 long 或 float 本地基元会产生编译器错误。
例如
float f = 10;
long l = 5;
正确的写法是
float f = 10f;
long l = 5l;
然而我发现此刻编译器在没有 f 和 l 免责声明的情况下愉快地编译。我错过了什么吗?
最佳答案
这很好用,因为您隐式执行了从 int
到 float
和 long
的 a widening primitive conversion。
但是这不会编译,您需要添加 f
或 L
才能使其工作:
float f = 1.0; //can't convert from double to float
long l = 12345678912; //12345678912 is not a valid int
关于Java: float, long 局部初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22910343/