1
Javaコードでダウンキャスティングを報告するレポートツール(PMDなど)があるかどうかわかりません。すべてのキャストをキャッチダウンキャストをJavaで報告するツールはありますか?
Javaコードでダウンキャスティングを報告するレポートツール(PMDなど)があるかどうかわかりません。すべてのキャストをキャッチダウンキャストをJavaで報告するツールはありますか?
は、カスタムPMDルールと簡単です:彼らは、明示的なupcastsある場合
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);
}
}
は、残念ながら、それはあまりにもupcastsをキャッチ。いくつかの例:
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もチェックしてください。使用方法の詳細が含まれています。
これは素晴らしいことです。明白なアップキャストもキャッチされています。返事が遅れて申し訳ありません。 –
最終結果は何ですか? –
findbugs:http://findbugs.sourceforge.net/bugDescriptions.html#BC_IMPOSSIBLE_DOWNCAST –
アレックス、そのルールはちょうど_impossible_ダウンキャストを見つける –