想知道是否有报告工具(例如PMD)报告Java代码中的向下转发。
答案 0 :(得分:1)
使用自定义PMD规则捕捉所有演员阵容很简单:
import net.sourceforge.pmd.AbstractJavaRule;
import net.sourceforge.pmd.ast.ASTCastExpression;
public class CastRule extends AbstractJavaRule {
public CastRule() {
}
@Override
public Object visit(final ASTCastExpression node, final Object data) {
addViolation(data, node);
return super.visit(node, data);
}
}
不幸的是,如果它们是明确的向上翻译,它也会捕获。一些例子:
final Number myNumber = 5;
final Integer myInteger = (Integer) myNumber; // catched
final Number myNumber2 = (Number) myInteger; // catched
final Number myNumber3 = myInteger; // NOT catched
仅捕获垂头丧气的PMD看起来相当复杂。
同时检查this answer,它包含有关使用情况的一些详细信息。