일반적으로, IDEA의 모든 특징은 Generics를 다룰 수 있습니다. 바꾸어 말하면, 만일 Generics 지원이 적절하게 셋업되면
Generics 와 함께 에디터, 리팩토링, 네비게이션 & 검색 등을 사용하여 그것들 없이 부드럽게 작업할 것입니다.
그러나, Generics에 특유한 특징은 또한 추가되었습니다. 그것은 Generify
Refactoring 라고 불리고, 상응하는 섹션에서 발견될 수 있습니다.
이 서브섹션은 IntelliJ IDEA에서 Generics를 사용하는 몇 개의 표본을 제공합니다.
1. Smart Completion.
최초 코드는 다음과 같이 보입니다:
Set<File>
files = new
Ctrl + Shift + Space를 누르십시오

그것은 Set에 대해 적절한 타입과
함께 코드를 완료할 것을
제안됩니다.
Set<File>
files = new TreeSet<File>();
2. Refactoring.
Generics특유의 코드와 함께 리팩토링을 수행하면 전보다 더욱 쉬어집니다 .
List<File> list = getFiles();
list.get(0);
list.get (0) 에 대한 변수를 생성합시다 - Ctrl +
Alt + V를 누르십시오

나타난 다이얼로그에서 제안된 변수 타입은 적합한 타입과 함께 주어집니다.
List<File> list = getFiles();
File file = list.get(0);
3. Intentions.
Intention actions 은 완전하게 Generics 인식입니다.
Set<File> filesToDelete = getFilesToDelete();
for (Iterator it = filesToDelete.iterator(); it.hasNext();) {
File file = (File) it.next();
System.out.println( "file = " + file);
}
캐럿이 iterator 선언 위에 있는 동안 Alt + Enter 를 누르십시오

Generics-aware 하는 것에 iterator 를 변경하기 위해 두 번째 행동을 선택하십시오 .
Set<File> filesToDelete = getFilesToDelete();
for (Iterator<File> it = filesToDelete.iterator(); it.hasNext();) {
File file = (File) it.next();
System.out.println( "file = " + file);
}
4. Live Templates.
만일 Generics 가 사용가능 하면 Live Templates 을 생성하는 것은 또한 고려됩니다.
Set<File> filesToDelete = getFilesToDelete();
itco
itco 템플릿 후에 캐럿이 서 있을 때 Tab 을 누릅니다. IDEA는 자동적으로 인식하고 필요한 곳에서 매개변수를 나타내는 타입을 삽입합니다.
Set<File> filesToDelete = getFilesToDelete();
for (Iterator<File> iterator = filesToDelete.iterator(); iterator.hasNext();) {
File file = iterator.next();
}
5. Code Inspections.
Code Inspections 는 코드가 가능한 Generics 지원과 함께 개선될
수 있는 경우를 인식합니다. 이 경우는 타입 캐스팅이
중복일 때 입니다.

6. Code Generation.
만일 매개변수로 나타나는 타입이 사용되어야만 한다면 Code Generation 특징은 자동적으로 감지됩니다.
public class FilesList implements List<File> {
}
상응하는Select Methods to Implement 다이얼로그를 부르기 위해 Alt + Enter 를 누르십시오.

생성된 메소드는 그 매개 변수에 대해 적합한 타입을 갖습니다.
public class FilesList implements List<File> {
public Iterator<File> iterator() {
return null ;
}
...
}
|