我得到这行代码的错误:
这就是getBackground()
的样子:
public class MyClass {
...
private String background;
public String getBackground() {
return background;
}
...
}
我已经证实
Color.parseColor
需要一个字符串。为什么会发生这种情况,我怎样才能让编译器高兴呢?这并不能阻止应用程序运行,所以也许这是一个静态分析器的事情?我试着将getbackground()的返回值放在本地,并检查它是否为非空且具有
length() >= 1
,但这似乎无法解决任何问题。 最佳答案
看起来很像静态分析器检查的问题。如果将String
文本传递给Color#parseColor(String)
,则问题将消失。
静态分析器似乎不够聪明,无法推断您传入的值(即Color.parseColor("#eee");
的返回值)在所有可能的情况下都是非空的,因此它向您显示该值可能是getBackground()
或空的。如果您确定颜色null
不为空,您可以像这样抑制它:
//noinspection ResourceType
view.setColor(Color.parseColor(model.getColor().getBackground()));