Информация о типах времени выполнения(Run-Time Type Information)

В Vala классы регистрируются во время выполнения и каждый объект хранит информацию о типе и вы можете получить ее динамически с помощь оператора is:

bool b = object is SomeTypeName;

Можно получать информацию об объектах типа Object с помощью метода get_type():

Type type = object.get_type();
stdout.printf("%s\n", type.name());

C помощь оператора typeof() вы можете получить информацию о типе напрямую. Затем из этой информации можно создать новый объект с помощью Object.new():

Type type = typeof(Foo);
Foo foo = (Foo) Object.new(type);

Какой из конструкторов будет вызван? Будет вызван код в блоке construct {}, который описан в разделе о конструкторах в стиле gobject.

Last updated