Пакет: meta
Суперклассы: matlab.mixin.Heterogeneous
Суперкласс для метаданных объекта MATLAB
Класс meta.MetaData объектов представляет определения классов MATLAB® и составные части тех определений, такие как свойства и методы. Метаданные позволяют программе получить информацию об определении класса.
Класс meta.MetaData формирует корень иерархии классов метаданных, которая включает формирование массивов объектов метаданных, принадлежащих различным определенным классам.
MATLAB использует экземпляры класса meta.MetaData как объект по умолчанию заполнить пропавших без вести элементов массива.
findobj и findprop, могут искать иерархию метаданных и возвратить массив различных объектов метаданных. Они функционируют, требуют способности сформировать разнородные массивы, содержащие различные объекты метакласса.
Смотрите класс matlab.mixin.Heterogeneous для получения дополнительной информации о неоднородных иерархиях.
Вы не можете создать экземпляр класса meta.MetaData непосредственно. MATLAB создает экземпляры этого класса как требуется.
Указатель. Чтобы узнать, как классы Handle влияют на операции копирования, см. раздел "Копирование объектов".
Этот пример показывает, как класс meta.MetaData упрощает работу с метаклассами.
Создайте экземпляр meta.class, представляющий класс timeseries MATLAB:
>> mc = ?timeseries;
MATLAB использует объекты meta.MetaData заполнить элементы пустого массива:
>> m(2) = mc >> class(m(1)) ans = meta.MetaData >> class(m(2)) ans = meta.class
Используйте findobj, чтобы найти все свойства и методы, которые имеют защищенный доступ:
>> protectedMembers = findobj(mc,{'Access','protected'},...
'-or',{'SetAccess','protected'},...
'-or',{'GetAccess','protected'});Класс timeseries задает и свойства и методы, которые имеют защищенный доступ. Поэтому findobj возвращает разнородный массив класса meta.MetaData. Этот массив содержит и meta.property и объекты meta.method.
>> protectedMembers protectedMembers = 11x1 heterogeneous meta.MetaData (meta.property, meta.method) handle with no properties. Package: meta >> class(protectedMembers(1)) ans = meta.property >> protectedMembers(1).Name ans = Length >> protectedMembers(1).SetAccess ans = protected >> protectedMembers(1).GetAccess ans = public