IntelliJ 정적 가져 오기 완료


78

Eclipse에서 정적 가져 오기 자동 완성 (예 : Math)을위한 클래스 집합을 등록 할 수있었습니다. , Assert. , EasyMock. *

이 기능을 사용하면 ctrl-space assertEquals, pow, createMock 등이 유효한 코드 완성으로 나타날 수 있습니다.

IntelliJ에서 이것을 찾기 위해 고군분투하고 있지만 반드시 존재해야한다고 확신합니다. 누구든지 도울 수 있습니까?

감사!

답변:


62

버전> = 11 :

Settings -> Code Style -> Java -> Imports (tab).

버전 <11

Settings -> Code Style -> Imports

창 중간에는 " '*'와 함께 가져 오기를 사용할 패키지"테이블이 있습니다. 여기에 정규화 된 클래스 이름의 항목을 추가하고 정적 상자를 선택할 수 있습니다. 이제이 클래스의 모든 정적 메서드를 자동 완성에 사용할 수 있습니다.

(내가 시도한 적이 없기 때문에 정적 가져 오기가 패키지 지정과 어떻게 작동하는지 잘 모르겠지만 왜 그렇게하지 않는지 모르겠습니다. 수퍼 패키지를 지정하고 "하위 패키지 포함"옵션을 선택하면 더 흥미 롭다.)


8
메서드의 정적 가져 오기만 추가하도록 IntelliJ를 구성 할 수 *있습니까?
matt b

6
버전 11에서는 탭 Code Style -> Java이있는 곳에 표시됩니다 Imports. 나는 이것이 v10에서 어떻게 보 였는지, 내 설명이 엉성한 지 또는 약간 달랐는지 기억할 수 없습니다. 이전 버전의 IntelliJ를 사용하는 사람은 그에 따라이 답변을 자유롭게 편집하십시오.
Andrzej Doyle

2
버전 13 : Ctrl + Space에서 드롭 다운 메뉴 하단에있는 작은 텍스트를 보면 '정적으로 가져 오기 Alt + Enter'를 알 수 있습니다. 조합은 Ctrl 키 + SPACE, Alt + Enter 키를되도록
user1016765

3
내 버전 13.1.3에서는 Alt + ENTER 만 제대로 작동합니다. .*클래스에서 Alt + Enter 키를 누르면 정적 가져 오기를 선택할 수 있습니다 (이름 충돌이 발생하는 경우를 제외하고 모든 항목을 대체하면 매우 좋습니다).
Maarten Bodewes 2014-08-04

6
IntelliJ 2016에서는 설정-> 편집기 -> 코드 스타일-> 가져 오기입니다. 불행히도에 대한 정적 항목을 추가하는 org.junit.Assert것은 작동하지 않는 것 같습니다. 자동 완성 asse은 정적 가져 오기 Assert.assertEqualsassertEquals사용 하지 않고로 확장됩니다 .Assert.*
Jorn

50

Alt + Enter트릭을 할 것입니다. 처음에는 전체 표현식이 있어야하고 Alt + Enter정적으로 가져 오려는 메소드에 대한 히트 가 있어야합니다.

IntelliJ를 정적으로 가져 오기


8
매번 Alt + Enter를 누르지 않고도 기본적으로 가져 오기를 수행하도록 구성하는 방법이 있습니까?
Siddhartha

안타깝게도 이러한 기능에 대해서는 잘 모릅니다.
nucatus

3
이 IDEA 2018.1에서 작동이 중지 것으로 보인다, 어떤 생각이 어떻게 그것을 다시 얻을 수
데이비드 Roussel은

38

IntelliJ 10을 사용하는 경우 다음을 시도하십시오.

assEq<Ctrl-Alt-Space>

결과 팝업 목록에서 제안을 수락하면 기본적으로 ClassName.methodName () 참조 (Alt-Enter 의도를 사용하여 정적 가져 오기로 변환 할 수 있음)가 삽입됩니다.

완성 메뉴에서 "오른쪽"을 선택하고 "정적으로 가져 오기"를 선택하여 완성 목록에서 정적으로 가져온 메서드를 삽입 할 수도 있습니다.

여기에 이미지 설명 입력

클래스 (Assert.assertSame)에서 단일 메서드를 정적으로 가져 오면 해당 클래스의 다른 정적 메서드 (예 : Assert.assertEquals)가 "일반"코드 완성 (Ctrl-Space)에 포함됩니다.


어떤 단계가 작동하지 않습니까? Ctrl-Alt-space를 사용하여 assertEquals ()를 얻거나 정적 가져 오기 옵션을 선택 하시겠습니까?
Pakka Pakka 2014 년

첫 번째 단계는 작동하지 않았지만 귀하의 의견으로 해결책을 제공했습니다. 실제로 대답에는 CTRL + SHIFT + SPACE를 썼지 만 주석에는 CTRL + ALT + SPACE를 썼습니다. 마지막은 잘 작동합니다.
Paolo Fulgoni

와. IntelliJ를 18 개월 동안 사용하고이 우수한 기능에 대해 처음 알게되었습니다. 메뉴에서 또는을 통해 Ctrl+Shift+A어떻게 찾 습니까?
kevinarpe 2014-08-02

역사적 이유로 작업의 이름은 Class Name Completion 입니다.
Pakka Pakka 2015 년

35

Intellij 12의 경우 <ctrl + spacebar(twice)>. 그런 다음 메서드를 가져 오려면 정적으로 <alt + return>. 그렇지 않으면 엔터를 치면 메서드의 정규화 된 이름이 삽입됩니다.

업데이트 : 가끔 <alt + return>작품을 사용하는 경우 도 있습니다.



6

참조를 한 번 수행 한 다음 클래스 이름 (예 : Math)에 캐럿을 입력하고 alt + enter를 누른 다음 " 'java.lang.Math'에 대한 요청시 정적 가져 오기 추가"를 선택합니다. Intellij는

import static java.lang.Math.*;

파일의 맨 위에.


8
하지만 난 여전히 :( 모든 파일에 그럴 필요
Scruffers

0

추가 지금은 가능한 라이브 템플릿을 함께 고정 수입 :

옵션에서 정적 가져 오기를 확인해야합니다.

@org.junit.Test
public void should$EXPR$when$CONDITION$() {
    org.junit.Assert.assertThat(null, org.hamcrest.CoreMatchers.is(org.hamcrest.CoreMatchers.nullValue())); 
}

여기에 이미지 설명 입력

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.