JLS strictfp インターフェイスでは、次のことが指定されています。
strictfp 修飾子の効果は、インターフェイス宣言内のすべての float または double 式を明示的に FP-strict にすることです (§15.4)。
これは、インターフェイスで宣言されたすべてのネストされた型が暗黙的に strictfp であることを意味します。
JLS strictfp クラス:
strictfp 修飾子の効果は、インターフェイス宣言内のすべての float または double 式を明示的に FP-strict にすることです (§15.4)。
これは、インターフェイスで宣言されたすべてのメソッド、およびインターフェイスで宣言されたすべてのネストされた型が暗黙的に strictfp であることを意味します。
これらの 2 つの段落からは、修飾子strictfp
で宣言されたインターフェイス/クラスを実装/拡張している間の動作の兆候はありません。strictfp
strictfp
検索した後、キーワードUse the strictfp modifier for floating-point scaling across platformsの使用法に関する適切な説明が見つかりました。
厳密な動作は、FP 厳密なスーパークラスを拡張するサブクラスには継承されません。オーバーライドされたメソッドがそうでない場合、オーバーライドするメソッドは独立して FP 厳密であることを選択できます。
strictfp
キーワードで宣言されたクラスを拡張しているときにキーワードの動作をテストしましたがstrictfp
、それは本当です:strictfp
動作はクラスを拡張するクラスによって継承されませんが、問題はstrictfp
キーワードで宣言されたインターフェイスを実装しているときに正しくありません:strictfp
動作は実装するクラスによって継承されませんインターフェイス。
修飾子strictfp
で宣言されたインターフェイス/クラスを実装/拡張する際の正しい動作を誰かが説明してくれますか?strictfp