2010-03-10 2 views
1

CheckForNull 주석이 클래스의 메서드 구현에 있지만 인터페이스의 메서드 선언에없는 경우 FindBugs에서 확인하고 경고하도록 할 수있는 방법이 있습니까?클래스 대 인터페이스 FindBugs 및 CheckForNull

import javax.annotation.CheckForNull; 

interface Foo { 
    public String getBar(); 
} 

class FooImpl implements Foo { 

    @CheckForNull 
    @Override 
    public String getBar() { 
     return null; 
    } 
} 

public class FindBugsDemo { 
    public static void main(String[] args) { 
     Foo foo = new FooImpl(); 
     System.out.println(foo.getBar().length()); 
    } 
} 

난 그냥 인해 CheckForNull 만 FooImpl에 존재,하지만 푸에 때문에 FindBugs에 의해 발견되지 않은 누락 된 널 (null) 검사에 내 응용 프로그램의 버그를 발견, 나는 다른 모든 자리하고 싶지 않아요 이 문제의 위치를 ​​수동으로 지정하십시오.

답변

1

예 자신 만의 감지기를 작성하고 자신의 jar 플러그인 파일에 패키지 할 수 있습니다. 보조 findbugs 플러그인의 예로 fb-contrib.sf.net을 참조하십시오.

FindBugs는 주석 지원을 아직 지원하지 않는 bcel 5.2를 사용합니다. 주석을 나타내는 속성은 여전히 ​​사용자에게 전달되지만 5.3 (또는 bcel의 다음 버전이 무엇이든간에)보다 많은 수동 코딩이 가능합니다.

관련 문제