Javaコードでダウンキャストを報告するレポートツール(PMDなど)があるかどうか疑問に思います。
1 に答える
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ではかなり複雑に見えます。
この回答も確認してください。使用法に関する詳細が含まれています。
于 2011-10-31T11:10:35.767 に答える