2010-02-23 7 views
5

우리의 시스템은 우리가 다음, 분명 가능한 코드에 제네릭 및 열거를 소개하는 자동화 된 도구를 사용하는 것 좋아하고 것, 자바 6Java 1.4에서 Java 6 : 레거시 코드를 업데이트하는 자동화 도구는 무엇입니까?

이상적으로 자바 1.4의 교체를 포함하는 플랫폼 업그레이드를 통해 이동합니다 우리는 변경 사항을 검토 할 것입니다. 당신이 이것을 추천할만한 도구가 있습니까?

답변

5

IntelliJ IDEA는 기존 컬렉션을 생성하기위한 특별한 도구를 제공합니다.

+0

네, 감사합니다. 나는 그것이 내가 찾고 있었던 것에 가장 가깝다고 생각한다. –

6

는 "프로그래머"로 알려진 곳

도구의 이런 종류의

가능한 코드 에 제네릭 및 열거를 소개하는 자동화 된 도구입니다. 완전히 자동화 된 형태로 제공되면 직장을 벗어날 수 있습니다 (아마도 새로운 로봇 대 군주에게 재미있는 산만 함을 선사합니다).

진지하게, 이것은 방법에서 자동으로 수행 할 수있는 것 이상, 특히 열거 형의 소개입니다. 콜렉션에 대한 일반 유형 매개 변수는 컨텍스트에서 파생 될 수 있지만 단순한 경우에만 가능합니다.

+0

소원 나는 두 번 upvote 수 있습니다. 이 경우 자동으로 생성 된 코드는 AWFUL입니다. –

+0

열거 형에 대해서는 동의하기가 어렵습니다. 그러나 자동 생성 코드에 대한 제네릭과 주석에 대한 부분에서는 여러분이 Eclipse 만 사용한다고 생각합니다. – Roman

+1

이클립스를 사용하지만 IntelliJ도 사용했고 솔직히 말해서 이런 종류의 마이그레이션을 자동으로해서는 안됩니다. 응용 프로그램을 리팩토링하고 다시 디자인하는 좋은 기회입니다. 언어 기능뿐 아니라 패러다임의 변화입니다. –

1

마이클은 자동으로 수행 할 수 없다는 점에서 정확합니다. 이 점을 감안할 때 단계별 접근 방식을 고려해 볼 수 있습니다. 이때 단계별로 컬렉션을 올바른 유형으로 캐스팅하여 API/인터페이스 (예 : 하위 시스템 간)를 생성해야합니다. 어설 션을 추가하여 이러한 캐스트가 유효한지 검증 할 수 있으며 나중에 테스트 후에 제거 할 수 있습니다.

분명히 캐스팅이 이상적이지는 않지만 API를 초기에 업데이트 한 다음 (나중에 API 기반 시스템이라고 가정 함) 나중에 내부를 '수정'할 수 있음을 의미합니다. 나는 그것이 반드시 좋은 생각입니다 확신 아니에요

1

에 "generifying"오래된 코드베이스 : 같은 클래스 (뒤에서) 발생 캐스트 때문에

  • 그것은, 성능을 개선하지 않을 것이다 당신을 명시 적 형식 캐스트와 함께 원시 형식을 사용할 때처럼 generics를 사용하십시오.

  • 버그를 수정하지는 않습니다. 잘못된 유형으로 캐스팅하여 발생하는 심각한 버그가 이미 발견되어 수정되었을 수 있습니다.

그래서 코드를 좀 더 읽기 쉽도록 만드는 것이 유일한 방법입니다. 그리고 단점이라면 변경 및 테스트 작업을 수행하고 새로운 버그를 도입 할 수있는 위험을 감수해야합니다.

관련 문제