floatまたはdoubleの数値で動作するJavaクラスを作成しようとしています(シミュレーションの目的で、両方をサポートする必要があります)。クラスはいくつかの基本的な算術を実行する必要があり、三角関数(sin、cos、atan2)も使用する必要があります。
私は一般的なアプローチを試みました。Javaはジェネリックスのプリミティブ型を許可せず、MyClass<T extends Number>
実際にDoubleとFloatを許可しますが、基本的な演算を不可能にするため、DoubleとFloatの周りにラッパークラスを構築します。しかし、ジェネリッククラスの1つで値をインスタンス化する必要があるとすぐに、このアプローチは失敗します。
各タイプのすべてのコードを複製せずに、floatとdoubleの両方をサポートするクリーンな方法はありますか?