是否有用于报告Java中的向下转发的工具?

时间:2011-10-30 11:06:00

标签: java pmd

想知道是否有报告工具(例如PMD)报告Java代码中的向下转发。

1 个答案:

答案 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,它包含有关使用情况的一些详细信息。