【发布时间】:2013-11-23 22:23:23
【问题描述】:
我有一个简单的地址域对象,它具有以下字符串字段:line1、line2、city、state、zipCode。我想设置 toString() 方法来显示一个格式化的字符串,跳过任何为空的字段。
例如,没有 line2 的地址应显示为:, ,(例如“1234 My Street, Albuquerque, NM, 12345”而不是“1234 My Street, null, Albuquerque, NM, 12345”) .
除了以下方法之外,还有其他巧妙的方法可以在 groovy 中执行此操作吗?此外,由于 Grails 生成的代码使用 toString() 来表示网页上的域对象,我应该继续使用 toString() 来进行显示,还是应该制作一个 gsp 模板或其他东西来显示和格式化域对象信息?如果 toString() 只是为了入门,不应该长期用于显示目的,那么这个问题就消失了。
public String toString() {
String str = null
if (line1) {
str += line1
}
if (line2) {
if (string.empty == false) {
str += ", "
}
str += line2
}
【问题讨论】: