MATLAB R2016a giới thiệu một cơ chế được tài liệu để hạn chế lớp thuộc tính của đối tượng (tôi biết rằng cũng có cách cũ, khác, không có giấy tờ để làm điều đó, nhưng tôi không sử dụng phương pháp đó). Ví dụ:MATLAB: khám phá lớp bị hạn chế của các thuộc tính
classdef MyClass
properties
myProperty RestrictedClass
end
end
sẽ hạn chế thuộc tính myProperty
để giá trị của nó phải thuộc loại RestrictedClass
.
Nếu bạn đã triển khai một lớp học như vậy, có cách nào để sử dụng giao diện siêu dữ liệu lớp MATLAB để lập trình khám phá lớp thuộc tính bị hạn chế không?
Tôi đã hy vọng rằng nếu tôi sử dụng
m = ?MyClass;
p = m.PropertyList(1);
sau đó các đối tượng metaproperty p
sẽ chứa thông tin về các lớp học mà nó đã được hạn chế - nhưng có vẻ như không.
Có cách nào để khám phá theo chương trình không? Phương pháp này sẽ không cần phải liên quan đến việc thực sự khởi tạo lớp - cả hai vì nó có thể có các tác dụng phụ, và cũng bởi vì nó sẽ cần phải làm việc với các lớp Abstract.
PS Cũng không liên quan đến bất kỳ thứ gì giống như phân tích cú pháp mã nguồn của lớp. Hãy tưởng tượng rằng tôi có thể muốn làm điều này với một lớp học có mã nguồn đã được obfuscated sử dụng pcode
.