2013-03-08 3 views
9

내 프로그램의 정적 정적 분석의 일환으로, 클래스가 정상적인 것일 가능성이 있는지 확인하고 싶습니다. toString() 메소드. 아마 모든 클래스가 그것들을 구현하는 것은 아니지만 아마도 구체화 할 수있는 구체적인 클래스가 Object의 구현 인 toString()을 사용하지 않을 수도 있습니다.Java 클래스가 toString()을 구현하는지 확인하십시오.

이것을 확인하는 린트 툴킷이 있습니까? 현재 내가 사용하는 것들은 FindBugs와 CheckStyle입니다. 그 중 하나를 사용하여 확인하는 확실한 방법을 찾지 못했습니다. 나는 또한 보푸라기 실에 PMD를 추가하는 것을 검토 중이며, 또한 Sonar에서도 무언가를 할 수 있습니다. 그래서 이미 도구 상자에있는 도구를 사용하여 도구를 사용하는 것을 선호하지만 다른 도구를 추가해야 할 경우 고려할 것입니다.

+1

CheckStyle을 사용하고 사용자 지정 규칙을 만들 것입니다. 좋은 규칙처럼 들리 - 오픈 소스 코드 기반에 기여해야합니다. – Bohemian

+3

아, 더 규칙! 스트립 클럽과 같습니다. – irreputable

답변

4

당신은 Checkstyle Regexp 검사를 사용하여이 작업을 수행 할 수없는 등의

<module name="Regexp"> 
    <property name="format" value="public\s+String\s+toString\s*()"/> 
    <property name="message" value="All classes must implement toString()"/> 
    <property name="ignoreComments" value="true"/> 
</module> 

이 경우에도 주석 처리 된 인식합니다 toString() 방법. Checkstyle 5.6 및 eclipse-cs를 사용하여 시도했지만 이전 버전에서도 작동해야합니다.

+0

이것은 꽤 가깝습니다, 고마워요. 클래스가 완벽하게 서비스 가능한'toString()'을 (예를 들어'AbstractList'에서) 상속받는 경우는 다루지 않지만, 필자가 필요로하는 것일 수도 있습니다. –

관련 문제