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(...)
が、別の基本クラスに渡すことはあまり実用的ではありません (ここまでは、子クラスのプロパティに関する情報を取得するためにリフレクションを使用していました)。