我收到这行代码的错误:
这就是getBackground()
的样子:
public class MyClass {
...
private String background;
public String getBackground() {
return background;
}
...
}
我已经确认Color.parseColor
需要一个字符串。为什么会发生这种情况,以及如何使编译器满意?
这不会阻止应用程序运行,所以这可能是一个静态分析器吗?我尝试将getBackground()的返回值放在本地并检查它是否为非空且有length() >= 1
,但这似乎没有解决任何问题。
答案 0 :(得分:3)
看起来非常像静态分析仪检查之一的问题。如果您将var zone = someNearable.nearableZone
字面值传递给String
,例如Color#parseColor(String)
问题消失了
看起来静态分析器不够聪明,无法推断您传入的值(Color.parseColor("#eee");
的返回值)在所有可能的情况下都是非空的,因此它向您显示可能< / em>此值为getBackground()
或为空。如果你确定颜色null
是非空的,你可以像这样压制它:
String
答案 1 :(得分:0)
将字符串变量初始化为零,如
String x = null;
anyview.setBackgroundColor(Color.parseColor(x));