この質問は Android のシナリオに基づいていますが、Java 全般に当てはまります。
Android では、ContentValues
クラスには次のような多くのput()
メソッドがあります。
put(String key, Float value)
put(String key, Integer value)
私たちのコードには次のものがあります。
contentValues.put(myKey, myCondition ? Utils.getFloat(something) : Utils.getInt(something));
これが実行されると、常にput(String key, Float value)
呼び出されることがわかりました。myCondition
これは、 が満たされていないため、三項演算子が整数値に解決された場合でも発生します。
私たちの場合、これを に置き換えるとif-else
問題が解決します。VM が実行するメソッドをいつ、どのように選択するかについての説明を本当に求めています。
これがすでに回答されている場合は、重複としてマークしてください。前もって感謝します!