Я пытаюсь создать несколько классов Java, которые должны работать либо с числами с плавающей запятой, либо с числами типа double (для целей моделирования я должен поддерживать оба). Классы должны выполнять базовую арифметику, а также использовать тригонометрические функции (sin, cos, atan2).
Я попытался применить общий подход. Поскольку Java не допускает примитивных типов в обобщениях, а MyClass<T extends Number> действительно допускает Double и Float, но делает невозможной базовую арифметику, я создаю класс-оболочку вокруг Double и Float. Но этот подход терпит неудачу, как только мне нужно создать экземпляр значения в одном из общих классов.
Есть ли чистый способ поддерживать как float, так и double, без дублирования всего кода для каждого типа?