Intention Actions  

 

개요


코드를 쓰는 동안 모든 것은 실수를 합니다.  대부분의 IDE 단순히 사실을 무시하고 당신 자신이 스스로 하도록 내버려둡니다. 당신이 것을 결국 발견할 , 당신이 잘못한 것을 발견하기 위해서 컴파일해야만 하고 그때 당신이 무엇을 했는가, 어디서 했는가, 어떻게 고치는가를 이해하기 위해 당신이 스스로 해야 합니다.

 

당신이 최종 기한 압력 하에서 복잡한 솔루션을 코드화하고 있을 반면에 IDEA 실수가 일어날 것이라는 것을 가정합니다.

그래서 어떤 지능은 당신에 대해 그것들을 처리하는 것을 보조하기 위해서 내장되어 있고 당신이 만들거나 INTENDED 하는 것을 추측하려고 합니다. 쌍의 프로그래밍 파트너와 유사하게, 그들이 발생하는 것에 따라 IDEA  당신이 쓰는 코드를 관찰하고, 그들이 일으키는 문제를 플래그 하려고 합니다.  게다가, 그것은 문제를 해결하는 하나 이상의 메소드를 제안합니다.  만일 당신이 제안된 솔루션에 동의하면, IDEA 빠른 스트로크 또는 클릭 문제를 해결합니다.  만일 제안된 해결이 당신이 필요로 하는 것이 아니면, 당신은 최소한 문제에 대해 알고 있고, 그것을 당신 자신이 정정할 있습니다.  바꾸어 말하면, IDEA 당신의 코드에서 틀린 무엇인가 있다 라고 간주할 , 그것은 그것을 해결할 ACTION 제안합니다.   특징은 Intention Actions이라고 불립니다. 그것은 실수를 발견하고 해결할 뿐만 아니라 당신으로 하여금 그것들이 선언되기 전에 새로운 것을 사용하여 시작함으로써  코딩을 빠르게 있습니다이것이 당신을 어떻게 도울 있는 예를 보겠습니다.


만약 코드를 쓰는 동안이라면, 당신이 새로운 필드가  필요하다는 것을 발견합니다.  전통적으로, 당신은 클래스 선언을 스크롤 것이고 새로운 필드를 선언하고 아래로 스크롤 하고 그것을 사용하기 시작합니다.  당신은 새로운 기호를 반대의 순서 또는 당신의 단계가 사용할지도 모르고, 당신까지 당신의 착오를 깨닫지 못하면서 그것을 선언하는 것을 잊어 버립니다.  어떤 경우에, 그것은 비효율적입니다.  IDEA  함께 당신은 단지 번째로 그것을 선언하면서 새로운 필드를 사용하는 것을 시작할 있습니다.  그것이 아직 선언되지 않기 때문에 이름은  highlighted as an error 입니다지금 캐럿을 이름으로 옮기십시오.


IDEA 현재의 라인에 백열 전구 기호를 표시할 것입니다.  Intention Action 특징이 문제를 찍고 당신을 위해 제안하는 그것은 당신에게 신호인 입니다.


지금 Alt + Enter (또는 백열 전구를 클릭했습니다) 누르십시오. 그러면 IDEA 그것이 참조와 함께 코드를 픽스하기 위해 가져갈 있는 제안된 동작의 목록을 팝업 합니다.


경우, IDEA 가능한 개의 동작을 제안합니다:  필드, 로컬 변수 또는 매개 변수를 생성하십시오. 그렇지 않으면 참조의 이름을 바꾸십시오.  만일 제안된 솔루션이 적당하면( 경우, 필드를 생성하면서), Enter (또는 팝업에서 항목을 클릭) 누르십시오.
IDEA 다음 적합한 라인에 새로운 필드 선언을 생성할 것입니다(당신은 그것에 스크롤 필요는 없습니다), 또한 타입을 추측하려고 시도할 입니다.  만일 제안의 어느 것도 당신이 정말로 무엇을 원하는지 반영하지 않으면, 팝업을 제거하기 위해 Escape 누르십시오. 당신이 선택하든지 당신은 다음 코드를 픽스하는 것을 계속할 있습니다.


형식 구성 요소 또는 속성을 위해 GUI 디자이너에서 적합한 것으로서 Intention Action 나타납니다.


 

Intention Action 불가능하게 하는


만일 당신이 스위치 Off 있는 그것 위에 캐럿이 있을 때마다 특별한 표현 또는 스테이트먼트에 대해 프로젝트에서 나타나는 intention action 필요하지 않으면모든 제안된 Intention Action 왼쪽으로 전구 기호를 가집니다.  바로 그것을 클릭하십시오. 전구 기호는 회색으로 것입니다. 그리고 동작은 다시는 나타나지 않을 것입니다.  그러나, 만일 가능한 개의 동작이 있으면 당신은 그들 모두의 스위치를 꺼야만 합니다.

그리고 만일 당신이 어떤 Intention Action 표현식이나 스테이트먼트에 이용할 있는지 알고 싶으면 Alt + Enter 단축 키를 사용할 있습니다.  불가능한Intention Action 스위치 하기 위해 회색으로 전구를 클릭하십시오.

Intention Action 타입


일반적으로, Intention Action 개의 그룹으로 나눠질 있습니다:

1.  "Create from usage" intentions 

타입의 Intention Action 새로운 코드 항목을 생성합니다:  클래스, 인터페이스, 메소드  그들은 당신의 코드를 분석할 만큼 충분히 스마트하고, 특별한 경우에 맞는 동작을 제공합니다.  예를 들면, 만일 참조가 대문자이거나 Create class 이름이 new 키워드 이후 타이프 , 또는 대문자로 쓰여진 식별자가 시작되는 때에 Create Constant Field 제안됩니다.

타입 뒤의 주요한 개념은 당신이 새로운 것을 번째로 그들을 선언하지 않고 사용하기 시작할 있다는 것입니다.  당신은 당신이 계속 집중하고 있는 동안 IDEA 조작하는 선언, 새로운 파일 등을 생성하는 것처럼 평범한 상세에 대해 당신의 현재의 태스크에서 없애지 않습니다.

2.  Quick fixes 

 
타입의 Intention Action 공통의 코딩 실수에 응답합니다: 부적당한 접근 경자 사용 또는 잘못된 타입의 표현 식을 사용하면서 철자를 틀리게 변수명.

IDEA 당신이 타이프 하는 것으로서 종류의 문제들을 잡고 에러에 대한 적절한 제안과 함께 Intention Action 사용하고 있는 그것들을 픽스하는 빠른 방법을 제공합니다.

3.  Micro-refactorings 

 
이런 intention actions 코드에 대해 나타나지만, 그것은 아마도 아래와 같은 것에 의해 보다 더욱 읽히기 쉽게 수도 있을지 모릅니다.

  선언과 할당의 분할
  if 
조건의 변환
  2
개의 if 스테이트먼트에의 분할
 
기타

4.  EJB-specific intentions  

타입의 Intention Action EJB 클래스 내에서 단지 발생합니다.  그들은 많은 에러와 경고 조건을 잡아내고 해결을 제공합니다.  상세한 것은, Intention Action List: Intention Actions for EJBs 보십시오.

5.  Miscellaneous intentions  
  

그룹은 그룹의 아무것에도 위에 놓일 수 없는 의도를 포함합니다. 현재, 그들 중의 2개가 있습니다:
Fetch external resource
 Ignore external resource
 

백열 전구 기호는 여러 가지 의도에 대해 다릅니다.

Intention action sign 
 

노란 전구는 IDEA 당신의 코드를 바꾸기 위해 제안하는 것을 표시합니다. 그것은 코드 개선(마이크로 리펙토링과 같은) 대한 제안을 위하여 경고 정정부터 상황의 범위를 커버합니다.

Quick-fix sign  

느낌표가 있는 빨간 전구는 IDEA 메소드로 당신에게 에러 픽스를 제안하는 것을 표시합니다. 그것은 Create from usage intentions Quick fixes로서 그러한 사용 의도와 관계가 있습니다.


Intention Actions 완전한 목록을 보기 위해,  Intention Action List  섹션을 참조하십시오

'Create from Usage' Intention Actions  


이것은 '사용으로부터의 클래스 생성', '사용으로부터의 필드 생성' 등을 포함하여 일단의 Intention Action 위한 공통 명칭입니다.  당신이 미해결 참조를 가질 의도는 아주 유사한 방법으로 작동합니다.

예를 들면, 당신은 다음과 같은 미해결 참조를 가집니다:

 

Alt + Enter 누르고 Create Field 'ref_1' 선택합니다

 

IDEA 필드를 생성하고 드롭-다운 목록에서 적절한 타입을 제안합니다.


당신은 IDEA 의한 제안 또는 다른 것을 입력하여 제안된 타입 중의 1개를 선택할 있습니다.

'Create Getter/Setter' Intention Action  


이것은 '사용으로부터의 생성' Intention Action  특별한 경우입니다.
미해결의 메소드 콜은 get, set 또는 is   단어가 포함해야만 합니다.


Alt + Enter 누르십시오.  IDEA 상응하는 참조에 대한 게터(또는 설정된 식별 번호가 있는 때가 제공하는 셋터) 생성하는 것은 제안하고 Create Getter 선택합니다.


IDEA
제안된 리턴 형태와 함께 게터 메소드를 생성합니다. 그것은 자동적으로 선택됩니다.  당신은 새로운 값을 타이프할 있거나 Ctrl + Space 눌러서 목록과 다른 타입을 선택할 있습니다.

메소드에 대해 리턴 형태를 지정하고 후에(Enter 누릅니다), 목록은 당신이 적용 가능한 타입의 필드에서 고르게 되는 리턴된 변수의 이름을 선택하는 것을 가능하게 하며 팝업합니다.  당신은 IDEA 또는 다른 것을 입력하여 제안된 타입 중의 개를 선택할 있습니다.  게다가, 당신은 기존 필드에 접근 기구의 기초로 있거나, 새로운 하나를 정의할 있습니다.

'Rename Reference' Intention Action   


Rename Reference Intention Action  Create from Usage 타입의 intentions 같이 작동합니다.
가끔 당신은 이름을 잘못 타이프 있습니다. 그것을 픽스하는 빠른 방법은Rename Reference intention action 함께 있습니다:

당신이 선택할 Rename Reference 액션 항목을 형성하고, IDEA 유사한 스펠링과 함께 참조 사이에서 제안을 만듭니다.

그리도 유효한 필드와 로컬 변수 이름의 항목을 드롭 다운합니다.


당신은 Enter 눌러서 디폴트 제안(선택하고 빨간색으로 약술한) 보존할 있거나, 또는 당신은 다른 이름(이름이 짧으면 좋은 선택) 타이프 있습니다, 또는 당신은 drop-down 목록( 이름에 대한 좋은 이디어)에서 IDEA 의해 제안된 이름 중의 1개를 선택할 있습니다.  첫번째 조금의 문자를 타이프하여 당신은 목록을 좁힐 있습니다.  당신이 Enter 누르고 후에 같은 이름이 있는 모든 미해결 참조는 새로운 값으로 이름이 바꿔집니다.

'Add Javadoc Tag' Intention Action  


Add Javadoc Tag intention action  Create from Usage 타입의 intentions처럼 작동합니다

 
만일 당신이 새로운 주문의 Javadoc 태그를 쓰면, Intention Action 그것을 주문의 Javadoc 태그의 목록에 추가하는 것을 가능하게 하는 것이 제안됩니다:


당신은 File | Settings | IDE Settings: Errors: Unknown Javadoc Tags: Options에서 주문의 Javadoc 태그를 관리할 있습니다.

 


Interface Intention Action on Parameter Mismatch 


Intention Action 마이크로 리펙토링과 관계가 있습니다.  일부 매개 변수가 일종의 인터페이스를 가지는 메소드 콜이 있을 경우에 그것은 클래스로 인터페이스 구현을 삽입합니다.

 
다음 2개의 클래스와 인터페이스를 잡으십시오.



ClassCaller bar()  메소드는 ClassCallee 로부터 foo()   부릅니다그러나, 콜러 클래스는 myInterface  인터페이스의 구현이 부족합니다.  Alt + Enter 누르십시오.



'
 Make 'ClassCaller' implement Sample.I  ' 선택하십시오.
 


인터페이스 구현은 클래스 선언에 추가됩니다.  또한 인터페이스 메소드는 Select Methods to Implement 다이얼로그와 함께 구현을 위해 제안될 것입니다.

Static Import Intention Actions  


정적인 임포트는 당신으로 하여금 정적인 클래스와 클래스 멤버를 수식어 없이 사용하게 합니다. 다음의 개의 정적인 임포트 intentions 있습니다, "on demand" "single static import". 

만일 캐럿이 에디터에 클래스 이름 위에 있으면 , On-demand static import 불리어집니다.


Then all members of the imported class will be used without a qualifier. The
 import  statement will look as follows: 

다음 임포트된 클래스의 모든 구성 요소는 수식어 없이 사용될 것입니다.  import 스테이트먼트는 다음과 같이 것입니다:

import static java.lang.Math.abs;

만일 캐럿이 에디터에 클래스 이름 위에 있으면 하나의 정적인 임포트가 불리어집니다.



임포트된 클래스의 주어진 이름이 있는 구성 요소는 수식어 없이 사용될 것입니다.  import  스테이트먼트는 다음과 같이 것입니다:

import static java.lang.Math.abs;


intentions 사용하기 위해,  자바 SDK 1.5 위한 언어 수준  사용 가능하게 하게 되어야만 합니다.


 

Import Assistant 


당신은 Import Assistant 특징을 Intention Action으로서 행동하기 위해 구성할 있습니다.  상세한 것은 Managing Imports: Import Assistant  보십시오.