gpt4 book ai didi

java - 变量不能在绑定(bind)内部使用

转载 作者:行者123 更新时间:2023-12-02 09:27:18 25 4
gpt4 key购买 nike

我有一个验证函数,可以返回失败的部分。例如-

public class DateValidator{
public String validateDate(startDate, endDate){
try{
LocalDate.parse(startDate, formatter);
LocalDate.parse(endDate, formatter);
} catch(DateTimeParseException e) {
return "INVALID_DATE_FORMAT";
}
if (startDate.isAfter(endDate)) {
return "INVALID_START_AND_END_DATES";
}
..... so on
}
}

我想在 Drools 中使用 this 进行验证

rule
"ValidateDate"
when
$error: Error();
$request: Request();
DateValidator( $dateValidation: validateDate($request.getStartDate(), $request.getEndDate()) != null);
then
$error.getBadRequest($dateValidation);
end;

我想使用变量的返回类型,因为非 null 意味着验证未通过。但我遇到了 DRL 文件的异常 -

text=Variables can not be used inside bindings.
Variable [$request] is being used in binding
'validateDate($request.getStartDate(), $request.getEndDate())']

最佳答案

尝试将函数调用作为 from 条件元素的一部分执行:

rule
"ValidateDate"
when
$error: Error();
$request: Request(
$startDate: startDate,
$endDate: endDate
);
$dv: DateValidator()
$msg: String() from $dv.validateDate($startDate, $endDate)
then
$error.getBadRequest($msg);
end

希望对你有帮助

关于java - 变量不能在绑定(bind)内部使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58257679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com