是否可以设置编译选项直接编译:
float f = 1.0;
我不想在'1.0'之后添加'f'或'F'。那么,我可以告诉编译器将double直接转换为float吗?
感谢您的回答。
答案 0 :(得分:2)
不,Java编译器中没有这样的选项。它会创建一种与Java编程语言略有不同,不兼容的方言 - 到目前为止一直避免使用。
一般来说,Java编译器和JVM在处理语言方面非常严格。很少有选项可以在编译时影响源代码的行为或在运行时影响逻辑。
例如,这些是Java中不存在的选项(但可能存在于其他语言中):
int
溢出时抛出异常。确实存在的选项相当普通:
作为旁注,Java语言规范甚至要求一些编译时行为。例如,某些类型的unreachable code是编译时错误,兼容的Java编译器必须将其标记为错误(不作为警告或忽略):
while (true) { ... }
foo(); // Compile-time error
第二个例子:
return;
bar(); // Compile-time error
(这与C / C ++形成对比,其中无法访问的代码检测是编译器为程序员提供的可选诊断;它不是必需的行为。)
答案 1 :(得分:1)
可以自定义编译器选项吗?是的,仅用于向后兼容。
您的案例是向后兼容的一个例子吗? 否强>
示例:在Java 1.4之前,assert
不是关键字,可以用作变量。编译assert
关键字时,可以将其用作较低的编译类。
答案 2 :(得分:0)
不,您无法更改编译器设置。如果你不希望在最后使用f,你可以根据需要进行类型转换。您可以在此处阅读[原始数据类型] [1]的更多信息 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html