【问题标题】:How to check if a class has a specific base class in Matlab如何在 Matlab 中检查一个类是否具有特定的基类
【发布时间】:2017-11-06 01:59:48
【问题描述】:

我在 Matlab 中定义了一个类,它是另一个类的子类,如下所示:

classdef SpecificLimit < BaseLimit

  % Private properties section
  properties (SetAccess = private, GetAccess = private)
    options;
  end

  % Public section
  methods (Access = public)
    % ...
  end
end

现在我有一个名为r 的变量,我想检查这个变量是否是一个以BaseLimit 作为基类的类实例(我有很多)。有没有简单的方法可以做到这一点?我已经阅读了有关 meta.class 的信息,但我没有找到执行此检查的方法。

我正在使用 Matlab r2014a。

【问题讨论】:

    标签: matlab class oop inheritance


    【解决方案1】:

    你可以使用函数superclasses

    类似:

     any ( strcmp ( superclasses ( 'SpecificLimit' ), 'BaseLimit' ) )
    

    【讨论】:

    • @Suever 有更好的答案。
    【解决方案2】:

    您应该使用isa 来确定对象是BaseLimit 实例还是派生自BaseLimit。

    isa(r, 'BaseLimit')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-13
      • 2023-02-16
      • 2023-03-10
      • 1970-01-01
      • 2013-04-19
      • 1970-01-01
      • 1970-01-01
      • 2022-11-02
      相关资源
      最近更新 更多