例:
void f(int i) {
long val = 65536 * i;
}
クイックフィックスが適用されると、コードは次のように変更されます。
void x(int i) {
long val = 65536L * i;
}
例:
void f(int i) {
long value = i << 24;
}
クイックフィックスが適用されると、コードは次のように変更されます。
void f(int i) {
long value = (long) i << 24;
}
オーバーフローの切り捨てが予期せず発生する場合があるため、このような乗数は多くの場合は間違いです。
この問題は、 int リテラルを long リテラル (65536L) に変換すると解決できます。