在Groovy或Java中是否有任何类型的安全导航操作符用于算术运算?

ubi*_*con 0 java grails groovy

以下代码行在我的一个if陈述中:

$("#dateOfTransaction_month").val() != "${loadInstance?.payment?.dateOfTransaction?.getAt(Calendar.MONTH) + 1}"
Run Code Online (Sandbox Code Playgroud)

由于Java的日期/时间管理是如此混乱,我必须编写+ 1以获得正确的月份.问题是有时候一个payment物体可能不存在,所以我基本上会说null + 1.这给了我错误Cannot invoke method plus() on null object.有没有任何简洁的方法(整洁的东西像Groovy的安全导航操作符)我可以解释一个payment对象在if语句中为空的可能性,或者我被迫在if语句之前检查值是否为空?

doe*_*eri 7

Groovy向Date添加了一个plus()方法,这是+运算符调用的方法.您可以自己直接调用它并将安全导航操作符链接到它.

$("#dateOfTransaction_month").val() != "${loadInstance?.payment?.dateOfTransaction?.getAt(Calendar.MONTH)?.plus(1)}"
Run Code Online (Sandbox Code Playgroud)

http://groovy.codehaus.org/groovy-jdk/java/util/Date.html#plus(int)