而不是隱式轉換,有沒有辦法在變量類型不匹配時強制java編譯器發出錯誤。例如:如何使Java編譯器強制顯式類型轉換
int intValue=3;
double dblValue = 2.2;
double result;
result = 1/intValue*(intValue-dblValue);
在上述的Java的實例將隱式轉換(1 /的intValue)與值整數0
我想是爲編譯器發出一個錯誤,當變量類型唐不匹配而不是隱式轉換。
在此先感謝
編輯1:上面的公式只是一個例子。我知道如何使用以下解決方案中的任一個來解決這個問題:
result = 1.0/intValue*(intValue-dblValue);
或
result = 1/(double)intValue*((double)intValue-dblValue);
但那不是我後。謝謝
編輯2:我指的是類型轉換而不是類型轉換。我正在尋找編譯器來強制顯式類型轉換。
嗯,這是完全合法的Java代碼,所以在這種情況下沒有理由讓它產生錯誤。 –
「隱式將cast(1/intValue)類型轉換爲值爲0的整數」 - 什麼?這裏沒有涉及到任何投射。它不會產生一個double,然後將其轉換爲int或類似的東西;除法運算符直接產生一個int。 – user2357112
否.Java的規則已經定義好了,你提到的構造不是錯誤。它甚至不是一個類型轉換。在涉及整數和雙精度的情況下,這是一種隱含的轉換,在僅涉及整數的情況下完全不變。不清楚你在問什麼。 – EJP