"长度必须至少为1(为-1)"是什么导致这种情况,我该如何解决?

时间:2015-06-03 04:20:20

标签: java android android-studio

我收到这行代码的错误:

enter image description here

这就是getBackground()的样子:

public class MyClass {

  ...

  private String background;

  public String getBackground() {
    return background;
  }

  ...
}

我已经确认Color.parseColor需要一个字符串。为什么会发生这种情况,以及如何使编译器满意?

这不会阻止应用程序运行,所以这可能是一个静态分析器吗?我尝试将getBackground()的返回值放在本地并检查它是否为非空且有length() >= 1,但这似乎没有解决任何问题。

2 个答案:

答案 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));