3

特定の文字数/行、たとえば 80 文字を超えてはならない Groovy エラー メッセージの標準 (またはベスト プラクティス) は何ですか?

以下を検討してください(これは正常に機能しています)

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

これにより、インデント文字のない1行のエラーメッセージが表示されます(私が望むもの)。しかし、これを達成するための他の方法 (「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あなたが見た答えが指していると私が信じているように、それをに追加することもできます。

これはGrailsのことだと思っているBootstrap.groovyのは正しいですが、アプリケーションのライフサイクルの早い段階でmetaClassを設定しただけでも、同じ結果が得られるはずです...

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

ただし、これをすべて言うと、おそらくメッセージを1行に収めるだけです。

于 2012-02-08T12:15:07.410 に答える