CodeQL 文档

自我赋值

ID: java/redundant-assignment
Kind: problem
Security severity: 
Severity: error
Precision: very-high
Tags:
   - reliability
   - correctness
   - logic
Query suites:
   - java-security-and-quality.qls

点击查看 CodeQL 存储库中的查询

将变量赋值给自己没有任何效果。因此,这种赋值要么完全没有必要,要么表示拼写错误或类似的错误。

建议

如果赋值没有必要,请将其删除。如果赋值表示拼写错误或类似的错误,请更正错误。

示例

以下示例显示了旨在复制现有 MotionEvent 的方法的一部分,而不保留其历史记录。在第 8 行,o.mFlags 被赋值给自己。鉴于该语句被围绕在将信息从 o 的字段传输到新事件的字段的语句中,ev,该语句显然是一个错误。要更正此错误,mFlags 值应赋值给 ev.mFlags,而不是赋值给自己,如更正后的方法所示。

static public MotionEvent obtainNoHistory(MotionEvent o) {
    MotionEvent ev = obtain(o.mNumPointers, 1);
    ev.mDeviceId = o.mDeviceId;
    o.mFlags = o.mFlags;  // Variable is assigned to itself
    ...
}

static public MotionEvent obtainNoHistory(MotionEvent o) {
    MotionEvent ev = obtain(o.mNumPointers, 1);
    ev.mDeviceId = o.mDeviceId;
    ev.mFlags = o.mFlags;  // Variable is assigned correctly
    ...
}

参考

  • ©GitHub, Inc.
  • 条款
  • 隐私