How do I check if a property exists for an empty object?
27 次查看(过去 30 天)
显示 更早的评论
I have a function that gets passed an object named exObj . The intent is this object can be one of a set of custom class objects that I have created. If the passed object has a property or method (sometimes I can't assign the property and have to use a static method instead) that has a specific name, there is an additional set of commands that are executed. So, I start that block of code with
if ( isprop(exObj, "flagged" ) || ismethod(exObj, "flagged") )
The problem is, the object passed COULD be an empty version of the object. In that case, as described in the help pages here: https://www.mathworks.com/help/matlab/ref/isprop.html isprop returns an empty logical array and I get the error:
Operands to the logical AND (&&) and OR (||) operators must be convertible to logical scalar values. Use the ANY or ALL functions to reduce operands to logical scalar values.
Interestingly, ismethod does not give the same error. I still want to execute the code block if that property exists - so I can't just add if ~isempty(exObj) before this statement. So, how can I check that this property exists on an empty object?
1 个评论
Les Beckham
2023-10-18
I'm not an OOP expert by any means, but don't you know which classes have that property and which don't? Couldn't you check class(exObj) instead of checking for the presence of a certain property?
回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Interactive Model Editing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!