Main Content

meta.Validation 类

包: meta
超类: handle

描述属性验证

说明

此类的实例包含在类定义中指定的属性验证的相关信息。meta.Validation 类使您能够通过编程方式获取类定义中每个属性的以下信息:

  • 对属性应用的类限制

  • 属性值的大小要求

  • 引用应用于属性值的验证函数的函数句柄

有关属性验证的信息,请参阅验证属性值

属性

全部展开

应用于属性的类限制,指定为 meta.class 对象。如果属性定义不包含类限制,则 MATLAB® 将此属性设置为 0×0 的 meta.class 对象。

属性:

GetAccesspublic
SetAccessprivate

属性值的维度,指定为 meta.ArrayDimension 类型的异构数组或者 meta.FixedDimensionmeta.UnrestrictedDimension 类型的数组。如果属性定义未指定属性的维度,则 MATLAB 将此属性设置为 1×0 的 meta.ArrayDimension 数组。

属性:

GetAccesspublic
SetAccessprivate

验证函数,指定为引用各个验证函数的函数句柄的元胞数组。如果属性不使用验证函数,则 MATLAB 将此属性设置为 1×0 的元胞数组。

属性:

GetAccesspublic
SetAccessprivate

属性

Sealedtrue
HandleCompatibletrue

有关类属性的信息,请参阅类属性

方法

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 中推出