自我赋值¶
ID: java/redundant-assignment
Kind: problem
Security severity:
Severity: error
Precision: very-high
Tags:
- reliability
- correctness
- logic
Query suites:
- java-security-and-quality.qls
将变量赋值给自己没有任何效果。因此,这种赋值要么完全没有必要,要么表示拼写错误或类似的错误。
建议¶
如果赋值没有必要,请将其删除。如果赋值表示拼写错误或类似的错误,请更正错误。
示例¶
以下示例显示了旨在复制现有 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
...
}
参考¶
帮助 - Eclipse 平台:Java 编译器错误/警告首选项.