2014-10-29 3 views
0

우리 프로젝트는 몇 가지 중고품 생성 클래스를 사용합니다. 이러한 클래스에 의해 생성 된 Java 코드는 수백 개의 경고를 생성하며 대부분은 사용하지 않은 가져 오기를 사용하고 long serialVersionUID는 선언하지 않습니다 (Comparable에서 가져옴).드리프트 생성 Java 코드는 많은 경고를 생성합니다.

코드베이스의 나머지 부분은 ... 또한 경고를 생성하여 정중하게 표현하고 있으며 근검 코드가 생성하는 유형의 경고를 비활성화하는 것을 원하지 않습니다. 더 나은 코드를 생성하기 위해 절약 할 수있는 일이 있습니까? 생성 된 코드에 경고 억제 장식을 포함시키는 방법이 있습니까?

우리는 중고품 0.9.1을 사용하고 있습니다.

+0

질문에 '이클립스'라는 태그가 붙어 있기 때문에 실제로 당신이 이클립스를 사용하고 있다고 가정합니다. 그런 다음 Eclipse를 통해 자동 코드 정리를 적용 할 수있는 옵션이 있습니다. 특히 사용하지 않은 가져 오기를 제거하고 정적'serialVersionUID' 필드를 생성 할 수도 있습니다. 생성 된 파일을 후 처리하는 것이 차선책이라고 이해하지만, Thrift의 주어진 버전이 이미 수행 한 것보다 더 깨끗한 코드를 생성하거나 경고 억제 주석을 삽입 할 수 있는지 의심 스럽습니다. –

+0

생성 된 코드를 자체 jar 모듈에 넣을 수 있습니다. 내가 생성 한 코드가 자신의 특별한 테이블에 앉을 가치가있는 악마이기 때문에 이러한 문제의 유무에 관계없이 솔직히해야 할 일이 있습니다. 그런 다음 Eclipse 프로젝트의 경고 만 비활성화하십시오. – Gimby

+0

Eclipse의 코드 정리를 알고 있지만 몇 가지 프로세스 관련 이유로 코드를 후 처리하는 것은 실제로 옵션이 아닙니다. 코드를 자신의 항아리에 분리하는 방법을 살펴 보겠습니다. 그것은 제가하고자하는 것보다 큰 변화이지만 그것이 합리적입니다. 또한 Maven을 사용하고 있습니다. Maven이 도움이 될만한 것입니까? – CPS

답변

0

표준 스 리프트 Java 구현의 대안은 Facebook Swift입니다.

해당 소프트웨어에 포함 된 Swift Generator 도구를 사용하여 IDL에서 주석이 달린 Java 클래스를 생성 할 수 있습니다.이 클래스는 훨씬 더 명확하며 템플릿 수정 옵션도 있습니다. 당신이 그들의 포함 "간지"서버를 사용, 표준 드리프트는 전송로 대신 통합하지 않으려면

, 당신은 TProcessor 만들 수 NiftyProcessorAdapters 유틸리티 클래스를 사용할 수 있습니다

ThriftCodecManager codecManager = new ThriftCodecManager(
    new CompilerThriftCodecFactory(false) 
); 
List<ThriftEventHandler> eventList = Collections.emptyList(); 
ThriftServiceProcessor proc = new ThriftServiceProcessor(codecManager, eventList, svc); 
this.multiplex.registerProcessor(name, NiftyProcessorAdapters.processorToTProcessor(proc)); 

코드를 그 Swift는 기본적으로 POJO 만 생성하므로 거의 경고가되어서는 안됩니다. 즉, Swift 런타임은 많은 종속성을 가지며 모든 응용 프로그램에 적합하지 않을 수 있습니다.

+0

대안을 제시하는 것이이 질문에 대한 실제 답변이 아닙니다. 내가 당신의 대답에 넣는 (또는 감히 말하기 : 광고하기) 것이 아니라, 덧글로 추가 할 수 있습니다. – Gimby

+0

분명 사이트 규칙을 읽지 않았습니다. – Gimby

+0

@Gimby 나는 질문에 대한 대답을 제공하고, 의미론을 주장하고 있으며, 심지어 정확하지도 않습니다. 거울을 들여다. 너와 끝났어. – BCG

관련 문제