meta.Validation 类
命名空间: meta
超类: handle
描述属性验证
描述
此类的实例包含在类定义中指定的属性验证的相关信息。meta.Validation
类使您能够通过编程方式获取类定义中每个属性的以下信息:
对属性应用的类限制
属性值的大小要求
引用应用于属性值的验证函数的函数句柄
有关属性验证的信息,请参阅验证属性值。
属性
方法
isValidValue
tf = isValidValue(metaValidationObj,value)
确定值是否有效。如果 value
是由 metaValidationObj
描述验证的属性的有效值,则此方法返回 true
。
输入参数
metaValidationObj
- 属性的meta.Validation
对象value
- 可能的属性值,用于测试有效性
返回值
true
- 值是此属性的有效值false
- 值不是此属性的有效值
validateValue
validateValue(metaValidationObj,value)
测试值是否有效,如果不是有效值,则引发错误。如果 value
不是由 metaValidationObj
描述验证的属性的有效值,则此方法引发错误。错误消息与将该值赋给实际对象的属性时引发的错误消息相同。
输入参数
metaValidationObj
- 属性的meta.Validation
对象value
- 可能的属性值,用于测试有效性
返回值
无
示例
类 ValidationExample
定义了一个使用验证的属性。
classdef ValidationExample properties Prop (1,:) double {mustBeReal, mustBeGreaterThan(Prop, 10)} = 200; end end
函数 getErrorMessage
确定可能的值是否有效,并显示错误消息,指出造成值无效的原因。
function getErrorMessage(possibleValue) mc = ?ValidationExample; mp = findobj(mc.PropertyList,'Name','Prop'); mv = mp.Validation; if ~mv.isValidValue(possibleValue) try mv.validateValue(possibleValue) catch errorMessage fprintf('This value is not valid because: %s\n',... errorMessage.message); end else fprintf('%d is OK\n',possibleValue) end end
版本历史记录
在 R2018a 中推出