У меня есть класс, который я хотел динамически определять, какой тип принимать, но все же иметь тип float. Я добавил пример класса ниже. Проще говоря, мне нужен класс, который может содержать либо Ints, либо Float (или абстракции (Float)), но параметру типа не нравится, когда ему назначают что-то, что действительно должно ему соответствовать.
class Container<T:Float>
{
public function new(aValue:T = 0.0)
{
}
public function example():T
{
return 16.0;
}
В этом примере я получаю две ошибки компилятора. Первый - это значение по умолчанию конструктора new(aValue:T = 0.0
. Простое исправление - установить значение как динамическое, но мне нравится мой код более аккуратным, чем этот. Вторая ошибка - в возвращаемом значении example (). Это не позволит мне вернуть 16.0, так как это не экземпляр T.
Мой вопрос: возможно ли это, и если нет, следует ли мне использовать разные определения классов для каждого типа?