arg
使用内部所有的聚合 binder 对 context 进行评估并选出一个最先出现的可用值。
评估过程中:
如果参数不可为
null
、评估结果为成功但是内容为null
、同时参数是可选的, 则会忽略此结果,视为无结果。如果评估结果为失败,则暂记此异常,并视为无结果。
期间,遇到任何成功的、不符合上述会造成“无结果”条件的, 直接返回此评估结果,不再继续评估。
当所有binder评估完成,但没有遇到任何结果:
如果参数为可选,输出debug日志并使用 ParameterBinder.Ignore 标记直接使用默认值。
否则,返回 Result.failure 错误结果,并追加之前暂记的所有异常堆栈。