grails之我如何在 Groovy 中简化这段设置对象属性(如果它们为空)的代码

jpfss 阅读:54 2024-11-01 17:39:52 评论:0

如果属性不为空,我将使用 Grails 在域类上设置属性。目前,代码看起来像这样:

def product = Product.getById(5); 
 
if (!product.Name) { 
    product.Name = "Default Product" 
} 
if (!product.Price) { 
    product.Price = 5; 
} 
if (!product.Type) { 
    product.Type = "Shampoo" 
} 

在 Groovy 中实现此代码块的更好方法是什么?我设法将其简化为:

product.Name = product.Name ?: "Default Product" 
product.Price = product.Price ?: 5 
product.Type = product.Type = "Shampoo" 

但我希望能够做这样的事情(无效代码):

product { 
    Name = product.Name ?: "Default Product", 
    Price = product.Price ?: 5, 
    Type = product.Type ?: "Shampoo" 
} 

你们会推荐我做什么?

请您参考如下方法:

在上一个示例中使用 with 方法调用:

product.with { 
    Name = Name ?: "Default Produce" 
    Price = Price ?: 5 
    Type = Type ?: "Shampoo" 
} 


标签:程序员
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号