StringBuffer使用append提示String concatenation as argument to 'StringBuffer.append()' call

昨天发现一个IDE提示:

String concatenation as argument to 'StringBuffer.append()' call less... (Ctrl+F1)

Reports String concatenation used as the argument to StringBuffer.append(),StringBuilder.append() orAppendable.append(). Such calls may profitably be turned into chained append calls on the existingStringBuffer/Builder/Appendable,
saving the cost of an extraStringBuffer/Builder allocation.

This inspection ignores compile time evaluated String concatenations, which when converted to chained append calls would only worsen performance.     

这段英文看的意思不是很明白怎么回事,

        str.append("Date: " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "\n");
        str.append("Version: " + info.versionName + "(" + info.versionCode + ")\n");

代码大概是这样的后面还有很多 append 。

后来我才反应过来,是里面的参数的问题。

本来  append 方法就是拼接字符串用的,而参数里面又用了 + 加号来拼接字符串,于是就提示你应该用 append 将这些字符串作为参数来使用~~~

不过如果真的全用 append 来写的话,那这段代码阅读起来可就要命了,所以还是忽略这个提示了

时间: 2024-11-03 08:19:19

StringBuffer使用append提示String concatenation as argument to 'StringBuffer.append()' call的相关文章

从源代码的角度聊聊java中StringBuffer、StringBuilder、String中的字符串拼接

长久以来,我们被教导字符串的连接最好用StringBuffer.StringBuilder,但是我们却不知道这两者之间的区别.跟字符串相关的一些方法中总是有CharSequence.StringBuffer.StringBuilder.String,他们之间到底有什么联系呢? 1.从类的定义看CharSequence.StringBuffer.StringBuilder.String的关系 下面先贴上这四者的定义(来自JDK1.6) CharSequence是一个定义字符串操作的接口,Strin

erlang otp-erlang 服务器端编程 错误提示 variable 'State' is unbound

问题描述 erlang 服务器端编程 错误提示 variable 'State' is unbound -module(gen_server_template). %% gen_server_template -behaviour(gen_server). -export([start_link/0]). %% gen_server callbacks -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/

课后思考题2:C语言用递归算法,将一个字符串逆序输出,提示:字符串以'\0'结尾。

问题描述 课后思考题2:C语言用递归算法,将一个字符串逆序输出,提示:字符串以''结尾. 课后思考题2:C语言用递归算法,将一个字符串逆序输出,提示:字符串以''结尾. 解决方案 void foo(char * s) { if (!s) return; foo(s + 1); printf("%c", *s); } 解决方案二: void function(char *p) { if(*p=='/0') return ; function(p+1); printf("%c&q

WinForm中提示Circular base class dependency involving 'TestEncryption.Form' and 'TestEncryption.Form'

        最近想做一个可以选择文件.加密方式进行加密的小东西,于是画了一个WinForm界面,但当我把Form的name由Form1改为Form时,提示如下错误:"Circular base class dependency involving 'TestEncryption.Form' and 'TestEncryption.Form'"         错误的原因就是:The inheritance list for a class includes a direct or

符号-delphi7 中将存放到string变量里的'18',如何变成#$18

问题描述 delphi7 中将存放到string变量里的'18',如何变成#$18 #$18变成'18',用的是IntToHex(Ord(s[3]), 2)的方法,如果要将'18'变成#$18的转换方法 解决方案 由于Delphi是强制数据类型的,因此除了IntToHex(Ord(S[3],2)这样的方法外,基本没有其它办法了. 如果认为使用InttoHex函数效率比较低,可以使用查表法,这样速度就会快些,但相应的要求的存储量就会增加,而且如果除了英文还有汉字等数据的话,待查表将会很大 实际上I

vs2008-函数类型作为模板的类型参数,could not deduce template argument for 'T'

问题描述 函数类型作为模板的类型参数,could not deduce template argument for 'T' 模板定义: template <typename UnaryFunction, typename ContextAcessor> void ForEachApplication(UnaryFunction func) { using namespace utils; typename ContextAcessor::ApplicationListAccessor acce

excel-C#保存为Excel时提示Access to the path &amp;amp;#39;.xlsx&amp;amp;#39; is denied.

问题描述 C#保存为Excel时提示Access to the path '.xlsx' is denied. 昨天还好好的,好像也没干嘛,保存时就出问题了. 然后试着在程序中添加如下代码,取消文件夹的只读权限.代码如下: System.IO.DirectoryInfo DirInfo = new DirectoryInfo(excelFilePath); if (DirInfo.Attributes == FileAttributes.ReadOnly) DirInfo.Attributes

c++-为什么总提示CtrlDlg.cpp: &amp;amp;#39;=&amp;amp;#39; : cannot convert from &amp;amp;#39;char&amp;amp;#39; to &amp;amp;#39;char *&amp;amp;#39;?

问题描述 为什么总提示CtrlDlg.cpp: '=' : cannot convert from 'char' to 'char *'? 其部分代码如下://添加新的项目 LV_ITEM curItem; curItem.mask=TVIF_TEXT | TVIF_IMAGE | TVIF_STATE; curItem.state=0; curItem.stateMask=0; //为子目录和文件指定不同的图像 if((wfd.dwFileAttributes & FILE_ATTRIBUTE

php模板提示Undefined variable &amp;amp;#39;$output&amp;amp;#39;

问题描述 php模板提示Undefined variable '$output' 运行index.php 能下常输出: 1 2 3 4 5 6 7 8 9 10 虽然能运行,但是有这个提示,总觉得不太好....求解答...啊 提示: Multiple annotations found at this line: - Line Breakpoint: count.html.php [line: 9 ] - Undefined variable '$output' 以下是文件内容 --------