类元数据是关于可以从各种元类对象中获得的类定义的信息。使用元类对象来获取信息,而不必创建类的实例。元数据支持以编程方式检查类。每个元类都有属性、方法和事件,这些属性、方法和事件包含了关于它描述的类或类组件的信息。
类的所有类组件都有一个相关的元类,您可以从meta.class
对象。例如,创建meta.class
对象的matlab.mixin.Copyable
类:
mc = ? matlab.mixin.Copyable
mc = class with properties:在MA中实现句柄对象的复制方法DetailedDescription: " Hidden: 0 Sealed: 0 Abstract: 1 Enumeration: 0 ConstructOnLoad: 1 handlecomcompatible: 1 InferiorClasses: {0x1 cell} ContainingPackage: [1x1 meta。[0x1 meta. package] PropertyList: [0x1 meta. package]方法列表:[19x1 meta. properties]EventList: [1x1元。枚举成员列表:[0x1元。EnumeratedValue] SuperclassList: [1x1 meta.class]
的元
包包含描述类和类组件定义的元类。类名表示由元类描述的组件。例如,每个类属性都有一个元。与之相关的属性。为类组件定义的属性对应于相应元类对象中的属性。
meta.package
——访问meta.class
ContainingPackage
财产。
meta.class
-从类名或类对象使用元类
函数或?
操作符。
meta.property
——访问meta.class
PropertyList
财产。
meta.method
——访问meta.class
MethodList
财产。
meta.event
——访问meta.class
EventList
财产。
元。EnumeratedValue
——访问meta.class
EnumerationMemberListList
财产。
您不能通过调用相应的类构造函数来直接实例化元类。从类实例或从类名创建元类对象。
?
——返回一个类名称
meta.class
对象的命名类。使用meta.class.fromName
类名以字符形式存储在变量中。
meta.class.fromName ('
——返回类名称
”)meta.class
对象的命名类(meta.class.fromName
是一个meta.class
方法)。
元类(obj)
-返回一个元类对象的类实例(元类
)
创建meta.class
使用?
接线员:
mc = ? MyClass;
创建meta.class
使用fromName
方法:
mc = meta.class.fromName (“MyClass”);
创建meta.class
来自类实例的对象
obj = MyClass;mc =元类(obj);
的元类
函数的作用是:返回meta.class
对象(即对象的meta.class
类)。您可以获得其他元类对象(meta.property
,meta.method
,等等)meta.class
对象。
请注意
元素中的所有类都是元类元
包中。meta.class
是在上课吗元
包,它的实例包含MATLAB的信息®类。元数据是关于元类中包含的类的信息。
当你改变一个类定义时,MATLAB会重新加载这个类定义。如果类的实例存在,MATLAB根据新的定义更新这些对象。
但是,MATLAB并没有将现有的元类对象更新为新的类定义。如果你改变一个类的定义,而这个类的元类对象存在,MATLAB删除元类对象和他们的句柄失效。您必须在更新类之后创建一个新的元类对象。
有关如何修改和重新加载类的信息,请参见修改类的自动更新.