使用 MATLAB,可以向类实例添加动态属性,如下所示:
% Define a class supporting for dynamic properties
classdef DynamicClass < dynamicprops
end
% Add a dynamic property named 'toto' to some instance
c = DynamicClass();
c.addprop('toto');
无论如何,我确实没有找到通过反射获取动态属性列表的方法,确实:
m = metaclass(c);
返回属性的空列表:
PropertyList: [0x1 meta.property]
即使在dynamicprops
超类中列出属性也会返回一个空列表:
m.SuperClassList(1).PropertyList ==> 0x1 property array
有没有办法(通过反射)获取添加到类的动态属性列表?
注意:一些解决方法是维护手动列表newprop(end+1) = c.addprop(...)
,但传递给另一个基类并不是很实用(直到现在我一直在使用反射来获取有关子类中属性的信息)。