【问题标题】:Check for empty instance of a class检查类的空实例
【发布时间】:2013-05-27 05:53:13
【问题描述】:

我有一个带有空构造函数的类来支持数组创建。假设:

classdef MyClass < handle

  properties
    input1 = 0;
  end
  methods
  function obj = MyClass(input1)
    if nargin > 0
      obj.input1 = input1
    end
  end
  end
end

我创建了这个类的一个空数组:

emptyArray(666) = MyClass

然后我用完整的 MyClass 实例填充一些 emptyArray 索引。是否有一个 matlab 函数来检查 MyClass 函数是否与 MyClass 实例相同?否则,我该如何检查:

emptyArray==MyClass

要知道 emptyArray 包含 MyClass 的空实例的索引。

谢谢。

注意:它是一个句柄类。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    您会考虑为此类重载isempty 方法吗?

    function tf = isempty( obj )
        tf = isempty( obj.input1 );
    end
    

    【讨论】:

    • 不幸的是,我真正的班级有几个属性。我可以单独检查它们,但如果有更简单的方法会更好 x)
    • @Werner 添加一个属性empty,默认情况下设置为true,否则更改为flase
    • 事实上,我搜索了我的类,当类为空时,有一个名为 samples 的属性值为 0。所以我做到了:input = [obj.samples]; tf = input == 0; 它为空值返回 true。谢谢!
    猜你喜欢
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 2022-01-27
    • 1970-01-01
    相关资源
    最近更新 更多