3

对于不应跨越一定数量的字符/行(例如 80 个字符)的 Groovy 错误消息的标准(或最佳实践)是什么?

考虑以下(工作正常)

throw new IOException("""\
        A Jenkins configuration for the given version control
        system (${vcs.name}) does not exist."""
        .stripIndent()
        .replaceAll('\n', ' '))

这将导致一条没有缩进字符的单行错误消息(我想要的)。但是还有其他方法(“Groovy 的做法”)如何实现这一点?如果没有,您如何在独立的 Groovy 应用程序中将这样的方法添加到 GString 类(如果发现有关 Bootstrap.groovy 文件的提示,但它似乎与 Grails 相关)?

例子:"""Consider a multi line string as shown above""".toSingleLine()

4

1 回答 1

3

您可以使用字符串连续字符,然后去除多个空格:

throw new IOException( "A Jenkins configuration for the given version control \
                        system (${vcs.name}) does not exist.".replaceAll( /( )\1+/, '$1' ) )

或者您可以将其包装在一个函数中并将其添加到String.metaClass我相信您所看到的答案所指向的。

您认为这Bootstrap.groovy是 Grails 的事情是正确的,但是如果您只是在应用程序生命周期的早期设置元类,您应该得到相同的结果......

String.metaClass.stripRepeatedWhitespace = { delegate.replaceAll( /( )\1+/, '$1' ) }

然而,在说这一切时,我可能只是将消息保留在一行中

于 2012-02-08T12:15:07.410 回答