java8日期加本地,DROLLS -查找最小Java 8本地日期

我试图从DROLL中使用累加函数从日期列表(Java 8)中找到最小日期。

这是我的规则:

rule "Print minimum Service Date from Bill Lines"

when

accumulate (

$lineItem : LineLevelData($dateOfService : dateOfService) ,

$epochDay : min($dateOfService.toEpochDay())

)

$minServiceDate : LocalDate() from LocalDate.ofEpochDay($epochDay)

then

System.err.println("Min. Service Date used in rules calculation : " + $minServiceDate);

end

这是我得到的例外:

Unable to Analyse Expression LocalDate.ofEpochDay($epochDay):

[Error: unable to resolve method using strict-mode: java.time.LocalDate.ofEpochDay(java.lang.Comparable)]

[Near : {... LocalDate.ofEpochDay($epochDay) ....}]

^ : [Rule name='Print minimum Service Date from Bill Lines']

显然,我在这里遗漏了一些基本知识。有人能帮我修这个吗?

Drools版本:7.5.0

POJO:

public class LineLevelData{

LocalDate dateofService;

}

更新:

rule "Print minimum Service Date from Bill Lines"

when

accumulate ( $lineItem : LineLevelData ( $dateOfService : dateOfService ) ,

$epochDay : min($dateOfService.toEpochDay()) )

$epochLong : Number (longValue > 0 ) from $epochDay

$minServiceDate : LocalDate( ) from LocalDate.ofEpochDay($epochLong)

then

System.err.println("Min. Service Date used in rules calculation : " + $minServiceDate);

end

将cast添加到long之后,epoch将转换为本地日期。添加这个以防有人需要它。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值