在 Android Studio 中减少链式方法调用

Chop down chained method calls in Android Studio

我用Android Studio 2.2.2。我有这样的代码:

new StringBuilder ( ).append ( "<script type='text/x-mathjax-config'>" ).append ( "MathJax.Hub.Config({ " ).append ( "showMathMenu: false, " ).append ( "jax: ['input/TeX','output/HTML-CSS'], " ).append ( "extensions: ['tex2jax.js','toMathML.js'], " ).append ( "TeX: { extensions: ['AMSmath.js','AMSsymbols.js'," ).append ( "'noErrors.js','noUndefined.js'] }, " ).append ( "});</script>" ).append ( "<script type='text/javascript' " ).append ( "src='file:///android_asset/MathJax/MathJax.js'" ).append ( "></script>" ).append ( "<span id='math'></span><pre><span id='mmlout'></span></pre>" ).toString ( )

如您所见,它很长,用一行表示。有没有办法把它转换成这样:

new StringBuilder ( )
.append ( "<script type='text/x-mathjax-config'>" )
.append ( "MathJax.Hub.Config({ " )
.append ( "showMathMenu: false, " )
.append ( "jax: ['input/TeX','output/HTML-CSS'], " )
.append ( "extensions: ['tex2jax.js','toMathML.js'], " )
.append ( "TeX: { extensions: ['AMSmath.js','AMSsymbols.js'," )
.append ( "'noErrors.js','noUndefined.js'] }, " )
.append ( "});</script>" )
.append ( "<script type='text/javascript' " )
.append ( "src='file:///android_asset/MathJax/MathJax.js'" )
.append ( "></script>" )
.append ( "<span id='math'></span><pre><span id='mmlout'></span></pre>" )
.toString ( )

上面的每一行都以 .append() 开头,并且只包含其中一个。这更具可读性。

注:

  1. 上面的代码是一个例子,所以这里的性能并不重要。
  2. 我知道我可以去 Settings > Editor > General 和 select Use soft wrap in editorUse original line's indent for wrapped parts ,但是结果是这样的,这是不可读的:

编辑器 - 代码风格 - Java - 链式方法调用。 Select "chop down if long" 和 "Align when multiline"。或者使用 kotlin 和它的多行字符串:-)

但是你不应该在这里首先使用 StringBuilder。只需使用 + 连接字符串的各个部分。奖励:连接将在编译时而不是运行时发生。