【问题标题】:Is there a tool for reporting downcasts in Java? [closed]是否有用于报告 Java 中向下转换的工具? [关闭]
【发布时间】:2011-12-18 04:13:48
【问题描述】:

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

【问题讨论】:

标签: java pmd


【解决方案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,它包含一些关于使用的细节。

【讨论】:

  • 这太棒了 - 明确的向上转型也不是什么大不了的事。抱歉回复晚了。
猜你喜欢
  • 1970-01-01
  • 2010-11-06
  • 1970-01-01
  • 2010-10-08
  • 2012-03-27
  • 1970-01-01
  • 2012-06-08
  • 1970-01-01
  • 2011-01-28
相关资源
最近更新 更多