我的字符串加了下划线,并有一个通知说"Reassigned local variable"
。我已经计算出每当字符串被修改时都会发生这种情况,但我不确定为什么会出现这个通知。
它看起来没有引起任何错误,并且在“问题”选项卡下没有显示任何内容,所以我不确定是否应该更改它,或者是否应该忽略它。
下面是代码的简化版本。
Canvas canvas;
Paint p = new Paint();
String value = "a"; //'value' here becomes underlined
if(someCondition()) value += "bcdefghijklmnop"; //'value' here becomes underlined
canvas.drawText(value, 50, 50, p);
1条答案
按热度按时间vs3odd8k1#
这只是一个通知,可能是因为有时重新分配的局部变量会给以后的操作带来问题。在您的情况下,重新分配是完全合法的,只是要注意它会创建几个新对象。
如果你想避免这种情况,你可以在这里使用一个
StringBuilder
,你可以在任何需要的时候把它转换成一个String,但是这也会创建一个新的String
对象,所以如果你不在循环中使用它,通常不需要做任何改变(对于循环中的字符串操作,您可能会收到一个警告,这是代码中潜在问题的一个比实际通知更强烈的信号)。