경고Findbugs BC_UNCONFIRMED_CAST 나는 두 개의 클래스가
A a = new B();
if(a instanceof B){
doSomething((B) a); // type case a to B
}
해봐요 방법은 다음과 같습니다 -
public void doSomething(B b) { .. }
Findbugs 위의 경고를 발생하지 암호. 나는이 같은 위의 코드를 변경한다면 -
class A {
public boolean isOfTypeB() {
return this instanceof B;
}
}
class B extends A {}
A a = new B();
if(a.isOfTypeB()){
doSomething((B) a); // BC_UNCONFIRMED_CAST warning
}
을 Findbugs 오류 BC_UNCONFIRMED_CAST를 발생시킵니다. 나는 두 가지 구현 모두에서 많은 차이점을 보지 못했다. 어떤 제안이라도 나는 무엇이라도 놓치고 있냐?
if (a.isOfTypeB()) 또는 doSomething ((B) a)에 줄에 오류가 있습니까? – algorithmic
doSomething ((B) a) 행에 발생합니다. 질문 – Kevindra
업데이트 findbug가 메소드 호출 isOfTypeB가 instanceof 검사인지 확인하는 것이 불가능할 수도 있습니다. – algorithmic