我有一个对象,Person p;
。以下属性是p
的属性:
Properties:
PersonName: 'John Doe'
JobType: [1x1 JobTypes]
JobType 是来自JobTypes
包含 JobType 枚举的类的对象。我想看到JobType: Manager
而不是JobType: [1x1 JobTypes]
. 有什么想法吗?
我有一个对象,Person p;
。以下属性是p
的属性:
Properties:
PersonName: 'John Doe'
JobType: [1x1 JobTypes]
JobType 是来自JobTypes
包含 JobType 枚举的类的对象。我想看到JobType: Manager
而不是JobType: [1x1 JobTypes]
. 有什么想法吗?
我从不喜欢 Matlab 中的枚举类——对我来说太麻烦了。因此,我的经验太少,无法真正理解这里发生了什么。不过,我会尝试:枚举类只有一个值。它不是一个字符串。像
J = JobTypes.Manager
将JobTypes
类对象赋给变量J
,设置为关联的值Manager
。该值由 Matlab 内部选择,永远不会显示给用户。它J = Manager
在命令行上显示得很好,这是由于 Matlab 的标准disp
和display
枚举类的实现。我认为这种方法不能与display
另一个类中的调用结合使用。
为了避免这种情况,您可以为您定义自己的display
方法Person
:
classdef Person < handle
properties
PersonName = 'John Doe'
JobType = JobTypes.Manager
end
methods
function display(self)
fprintf(...
['Properties:\n',...
' Personname: ''%s''\n',...
' JobType: %s\n'],...
self.PersonName,...
self.JobType.char);
end
end
end
JobType.char
是 Matlab 版本的 a toString
for 枚举类,所以插入它fprintf
会显示实际的字符串!(为此感谢@zagy)
看看 Mathworks 如何实现display
他们自己的一些类的方法,以了解如何在显示中获取到超类、方法、事件等的链接。