Java: float, long 局部初始化

标签 java compilation primitive local-variables

我一直在假设,事实上我相信我有经验,在 Java 中用原始数字初始化 long 或 float 本地基元会产生编译器错误。

例如

float f = 10;
long l = 5;

正确的写法是

float f = 10f;
long l = 5l;

然而我发现此刻编译器在没有 f 和 l 免责声明的情况下愉快地编译。我错过了什么吗?

最佳答案

这很好用,因为您隐式执行了从 intfloatlonga widening primitive conversion

但是这不会编译,您需要添加 fL 才能使其工作:

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/

相关文章:

java - 为什么 loadUserByUserName 没有被调用?

java - 将整数连接到字符串 - 从性能和内存的角度来看,使用字符串文字还是原语?

java - JPA 映射中的原始类型。如果数据库列可能为 NULL 怎么办?

java - 有人在实际应用程序中使用 short 和 byte 原始类型吗?

java - Spark 中的文本文件流

javascript - AJax 调用 Controller 从 JSP 页面传递数据

windows - 在 Windows 上编译基于 Qt 的 NPAPI 浏览器插件

javac 无法在 .jar 中找到类,即使它们存在?

java - 互斥锁与彼得森算法?

无法弄清楚如何修复编译器错误。 (简单的初学者程序)