1
Java 코드에서 다운 캐스팅을보고하는보고 도구 (예 : PMD)가 있는지 궁금해합니다. 모든 캐스트를 잡기다운 캐스트를 Java로보고 할 수있는 도구가 있습니까?
Java 코드에서 다운 캐스팅을보고하는보고 도구 (예 : PMD)가 있는지 궁금해합니다. 모든 캐스트를 잡기다운 캐스트를 Java로보고 할 수있는 도구가 있습니까?
사용자 정의 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도 확인하십시오. 사용법에 대한 세부 정보가 포함되어 있습니다.
그것은 훌륭하다. 명백한 업 캐스트도 역시 잡히지 않는다. 늦은 답변 죄송합니다. –
최종성은 무엇입니까? –
findbugs : http://findbugs.sourceforge.net/bugDescriptions.html#BC_IMPOSSIBLE_DOWNCAST –
알렉스, 그 규칙은 단지 _impossible_ 다운 캐스트를 찾는다. –