Пакет: meta
Суперклассы: matlab.mixin. Неоднородный
Суперкласс для метаданных объекта 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