Допустим, я получаю имя класса, который я создал как String
. Как я могу создать экземпляр класса с именем, содержащимся в этой строке? Я знаю, что он будет производным от определенного родительского класса, но фактический класс будет другим.
Создать экземпляр класса из строкового имени в Haxe
Ответы (1)
var instance : MyClass = Type.createInstance(Type.resolveClass("path.to.MyClass"), []);
Несколько заметок:
resolveClass()
берет полный путь (включая пакеты) нужного вам классаcreateInstance()
принимает в качестве второго аргумента массив значений, которые применяются к конструктору. Эти значения должны быть в точном числе и должны передаваться, даже если они необязательны (в этом случае хороши нули).
person
Franco Ponticelli
schedule
08.09.2010
Но как я могу узнать имя MyClass для экземпляра dataType, когда я получил имя класса из строки? Например: gist.github.com/danbruegge/d51a9d233b4944327be6 Я создаю этот класс с помощью функции. Но как узнать тип данных для экземпляра переменной?
- person danbruegge; 08.10.2014
@danbruegge, если вы хотите что-то напечатать во время выполнения, вы просто не можете. Обычно вы хотите иметь общий общий тип, на который можно положиться, например, интерфейс, базовый класс или typedef.
- person Franco Ponticelli; 06.04.2015