用 javac 编译并将 double 转换为 float

Compile with javac and convert double to float

是否可以设置一个编译选项来直接编译:

float f = 1.0;

我不喜欢在“1.0”之后添加 'f' 或 'F'。那么,我可以告诉编译器将double直接转换成float吗?

感谢您的每一个回答。

不,Java 编译器中没有这样的选项。它会创建一种略有不同、不兼容的 Java 编程语言方言 - 迄今为止一直在避免这种情况。

一般来说,Java 编译器和 JVM 在处理语言方面非常严格。可以影响源代码在编译时的行为或 运行 时的逻辑的选项非常非常少。

例如,这些是 Java 中不存在的选项(但可能存在于其他语言中):

  • 使编译不区分大小写。
  • 运行 Java 源代码上的 C 预处理器(用于宏、包含等)。
  • 在 运行 时跳过所有数组索引检查。
  • int 溢出时引发异常。

确实存在的选项相当平凡:

  • Java 编译器:源代码的语言版本。
  • Java编译器:源文件的字符集。
  • JVM 内存限制。
  • JVM 垃圾收集算法调整。

附带说明,Java 语言规范甚至强制要求某些编译时行为。例如,某些类型的 unreachable code 是编译时错误,兼容的 Java 编译器必须将其标记为错误(而不是警告或忽略):

while (true) { ... }
foo();  // Compile-time error

第二个例子:

return;
bar();  // Compile-time error

(这与 C/C++ 形成对比,其中无法访问的代码检测是编译器为帮助程序员而提供的可选诊断;它不是必需的行为。)

可以自定义编译器选项吗?是的,只是为了向后兼容。

你的情况是向后兼容的例子吗? 没有.

示例:在 Java 1.4 之前,assert 不是关键字,可以用作变量。在编译一个assert关键字的时候,可以把它作为一个低级编译的class.

不,您不能更改编译器设置。如果您不想在末尾使用 f ,则可以根据需要强制转换为 float 。您可以在此处阅读有关 [原始数据类型][1] 的更多信息 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html