How do I cast a superclass object into a subclass object in MATLAB 7.7 (R2008b)?
27 次查看(过去 30 天)
显示 更早的评论
MathWorks Support Team
2013-8-27
编辑: MathWorks Support Team
2020-7-10
If I have a superclass object, and I would like to cast it into a subclass object. In the pre-R2008b class system I could do this:
obj_sub = class(struct(obj_super),'mySubClass');
In Java, I can do this as:
(mySubClass) obj_super
I do not see any straighforward way to do this in the current MATLAB class system.
采纳的回答
MathWorks Support Team
2020-8-12
编辑:MathWorks Support Team
2020-7-10
MATLAB 7.7 (R2008b) does not have any functionality for directly casting a superclass object to a subclass object.
As a workaround (in any version of MATLAB), create and use a method which automatically copies over non-dependent property values:
function output = copyObject(input, output)
C = metaclass(input);
P = C.Properties;
for k = 1:length(P)
if ~P{k}.Dependent
output.(P{k}.Name) = input.(P{k}.Name);
end
end
end
For more information about converting objects of one class to another and some examples, please refer to the following documentation page:
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Class Introspection and Metadata 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!