是否可以設置一個編譯選項直接編譯如下:用javac和double轉換成浮動
float f = 1.0;
我不喜歡「1.0」之後加上「F」或「F」 。那麼,我可以告訴編譯器直接將double轉換爲float嗎?
謝謝你的每一個答案。
是否可以設置一個編譯選項直接編譯如下:用javac和double轉換成浮動
float f = 1.0;
我不喜歡「1.0」之後加上「F」或「F」 。那麼,我可以告訴編譯器直接將double轉換爲float嗎?
謝謝你的每一個答案。
不,在Java編譯器中沒有這樣的選項。它會創建一種稍微不同的,不兼容的Java編程語言 - 到目前爲止已經被避免。
一般來說,Java編譯器和JVM在處理語言方面非常嚴格。只有很少的選項會影響源代碼在編譯時的行爲或運行時的邏輯。
例如,這些是不存在於Java中(但在其他語言中可能存在的)選項:
int
溢出時拋出異常。確實存在的選項是相當平凡:
作爲一個方面說明,一些編譯時的行爲甚至被Java語言規範中規定的。例如,某些類型的unreachable code是編譯時錯誤,和一個標準的Java編譯器必須將其標記爲錯誤(不是警告或忽略):
while (true) { ... }
foo(); // Compile-time error
第二個例子:
return;
bar(); // Compile-time error
(這與C/C++形成鮮明對比,其中不可檢測的代碼檢測是由編譯器提供的可選診斷程序,以幫助編程人員;這不是必需的行爲。)
可以自定義編譯器選項嗎?是的,只是爲了向後兼容。
你的情況是向後兼容的例子嗎? 否。
示例:直到Java 1.4,assert
不是關鍵字並且可以用作變量。編譯assert
關鍵字時,可以將其用作較低的編譯類。
不,您不能更改編譯器設置。如果你想,如果你不想在最後使用f,你可以使用類型轉換來浮動。您可以在這裏閱讀[基本數據類型] [1]的更多信息[1] http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
不,沒有編譯器選項可以實現您想要的功能。與C/C++不同,Java是一種相當嚴格的語言,不允許任何變化。 – Nayuki
這是JLS所要求的,所以......你最好開始喜歡它。或者停止使用浮動:) – Tunaki
在'1.0'之後添加一個'F'(或'f'),(或者添加一個類似'(float)1.0;'的類型)。 –