无用参数¶
ID: java/unused-parameter
Kind: problem
Security severity:
Severity: recommendation
Precision: high
Tags:
- maintainability
- useless-code
- external/cwe/cwe-561
Query suites:
- java-security-and-quality.qls
在方法体中从未读取的参数,并且由于重写而不需要的参数是无用的,可以删除。无用的参数会不必要地使该方法的接口复杂化,并造成维护和开发负担。
具有无用参数的方法表明该方法可以通过删除参数来简化,或者该方法未使用应该使用的值。重写其他方法的方法的参数不会被标记为无用,因为它们是必需的。类似地,如果重写方法中的一个方法使用参数,则重写其他方法的参数不会被标记为无用。
建议¶
应该检查该方法,以确定参数是否应该在方法体中使用。如果该方法被重写,还要考虑任何重写方法是否应该使用参数。如果参数不是必需的,则应删除它。
示例¶
在以下示例中,我们有一个方法用于确定 String
路径是否为绝对路径。
public void isAbsolutePath(String path, String name) {
return path.startsWith("/") || path.startsWith("\\");
}
该方法使用参数 path
来确定返回值。但是,参数 name
在方法体中未使用。该参数将被标记为无用,可以从程序中删除。
参考资料¶
维基百科:冗余代码.
CERT Java 编码标准:MSC56-J. 检测并删除多余的代码和值.
通用弱点枚举:CWE-561.