4
Я пытаюсь создать экземпляр класса на основе параметра типа функции.
Хотя documentation говорит, что это возможно, я не могу заставить его работать.Построение параметра типового типа в Haxe
Рассмотрим следующий код:
// Dialog base class
// Every dialog in my application will derive from this
class Dialog
{
public function new()
{
// do some stuff here
}
}
// One of the possible dialogs in the application
// Extends Dialog
class TestDialog extends Dialog
{
public function new()
{
super();
// do some more stuff
}
}
// A simple class that tries to instantiate a specialized dialog, like TestDialog
class SomeAppClass
{
public function new()
{
var instance = create(TestDialog);
}
@:generic
function create<T:Dialog>(type:Class<T>):T
{
return new T();
}
}
Это не работает со следующей ошибкой:
create.T does not have a constructor
Очевидно, что я делаю что-то не так, но что?
ли это означает, что я должен иметь ЬурейеЕ как ограничение? – NemoStein
typedef сообщает компилятору структуру для конструктора, которую вы будете использовать. –
Я не могу понять, зачем мне этот typedef вообще ... Класс (IMHO) должен быть достаточным, чтобы сообщить компилятору, что к чему. В любом случае, спасибо. – NemoStein