我目前正在研究某些东西,并且正在考虑是否有更时髦的方法来实现此目的:
if ( reqObj instanceof Order ) {
params.body = reqObj
}
else if ( reqObj instanceof PaymentRequest ) {
params.requestContentType = ContentType.JSON
params.body = reqObj
}
else if ( reqObj instanceof ShipmentRequest ) {
params.body = reqObj
}
else if ( reqObj instanceof StockLocationRequest ) {
params.body = reqObj
}
else if ( reqObj instanceof StockItemRequest ) {
params.body = reqObj
}
else if ( reqObj instanceof StockMovementRequest ) {
params.body = reqObj
}
else if ( reqObj instanceof ZoneRequest ) {
params.body = reqObj
}
else{
params.query = reqObj
}
如您所见,我正在检查一个对象的多个实例,它们执行相同的操作,但是需要检查它们是否是该类的实例,以便它们不执行
params.query
,也不执行params.body
(如果它返回true
)。有没有更时髦的方法可以做到这一点?P.S.我通常会在google中搜索,但对于要搜索的关键字一无所知。
最佳答案
你可以做:
def cls = reqObj.getClass()
if (cls in [Order, PaymentRequest, ]) { //other classess
params.body = reqObj
} else {
params.query = reqObj
}
if (cls in [PaymentRequest,]) { // may be instanceof as well
params.requestContentType = ContentType.JSON
}
也可以使用三元运算符(但是这可能不可读):
(cls in [Order, PaymentRequest,] ? {params.body = reqObj} : {params.query = reqObj})()
if (cls in [PaymentRequest,]) { // may be instanceof as well
params.requestContentType = ContentType.JSON
}
关于groovy - 检查对象的多个实例时,是否还有一种更时髦的方法来实现if..else if..else?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32218810/