如何配置lint忽略特定情况?

时间:2016-04-08 12:13:22

标签: android lint

如果字段是通过一堆注释操作的,有时lint会产生错误的警告。举个例子:

id

字段variable id is never assigned仅通过gson.fromJson()分配。这种操作对于lint是不可见的,因此它会发出警告@SearializedName 所以我想配置lint,在这种特殊情况下,忽略检查是否分配了字段,如果用@SuppressWarnings("unused")注释(请不要建议原始{{1}}必须为每个字段设置manualy如果使用了字段,将阻止检查)

1 个答案:

答案 0 :(得分:2)

Gson使用反射来序列化字段,该反射在运行时发生。 UnusedAssignment检查发现满足以下任何条件的变量:

  
      
  • 分配后永远不会读取变量
  •   
  • 在下一个变量读取
  • 之前,该值始终会被另一个赋值覆盖   
  • 变量初始值设定项是冗余的(出于上述两个原因之一) - 从不使用该变量。
  •   

除去此特定检查的警告的唯一选择是通过更新lint.xml或通过@SuppressWarnings("unused")来禁止它们。如果你真的不想做其中任何一件事,那么可以写一个custom Lint inspection来忽略带有@SerializedName注释的字段。

这种方法的缺点是如果你想在一个没有被Gson序列化的类中使用@SerializedName,那么如果一个变量未被使用,你就不会再收到警告。它比将@SuppressWarnings("unused")添加到GSON模型类的顶部要复杂得多。