暗黙の変換ではなく、変数型が一致しない場合にJavaコンパイラにエラーを発行させる方法があります。たとえば、次のように暗黙的に変換されるJava上の例ではJavaコンパイラが明示的な型変換を強制する方法
int intValue=3;
double dblValue = 2.2;
double result;
result = 1/intValue*(intValue-dblValue);
(1/intValue)の値を持つ整数に0
私がしたいことは、エラー変数の型ドンを発行するコンパイラのためであります暗黙的に変換するのではなく、一致させる。事前に
おかげ
EDIT1:上記の式は一例です。
result = 1.0/intValue*(intValue-dblValue);
または
result = 1/(double)intValue*((double)intValue-dblValue);
が、私は後だものではないthatsの:私は以下のソリューションのいずれかを使用してこの問題を解決する方法を知っています。ありがとう
Edit2:私は型変換ではなく型変換を指していました。私は明示的な型変換を強制するコンパイラを探しています。
私はこのような何かを探しています: https://support.microsoft.com/en-us/help/311329/option-explicit-and-option-strict-in-visual-basic-.net-and-in-visual-basic
これはまったく正当なJavaコードなので、この場合エラーが発生する理由はありません。 –
"暗黙的に値0の整数にキャスト(1/intValue)をタイプします" - 何?そこにはキャストはありません。それはdoubleを生成せず、それをintやそのようなものにキャストしません。除算演算子はintを直接生成します。 – user2357112
いいえ。Javaのルールはすでに定義されています。あなたが言及している構文はエラーではありません。それは型キャストでもありません。 intとdoubleを含む場合は暗黙の変換であり、intのみの場合は暗黙の変換です。あなたが何を求めているのか不明です。 – EJP