Eclipse Optymalizuje importowanie, aby uwzględnić import statyczny

411

Czy istnieje możliwość, aby Eclipse automatycznie szukał importu statycznego? Na przykład teraz, kiedy w końcu uaktualniłem do Junit 4, chciałbym móc napisać:

assertEquals(expectedValue, actualValue);

naciśnij Ctrl+ Shift+ Oi dodaj Eclipse:

import static org.junit.Assert.assertEquals;

Może za dużo pytam.

Paul Croarkin
źródło

Odpowiedzi:

572

Korzystam z Eclipse Europa, która ma również sekcję Ulubionych:

Okno> Preferencje> Java> Edytor> Content Assist> Ulubione

W moim posiadam następujące wpisy (podczas dodawania użyj „Nowy typ” i pomiń .*):

org.hamcrest.Matchers.*
org.hamcrest.CoreMatchers.*
org.junit.*
org.junit.Assert.*
org.junit.Assume.*
org.junit.matchers.JUnitMatchers.*

Wszystkie oprócz trzeciej stanowią import statyczny. Mając je jako ulubione, po wpisaniu „ assertT” i naciśnięciu Ctrl+Space , Eclipse wyświetli się assertThatjako sugestia, a jeśli go wybiorę, doda odpowiedni import statyczny do pliku.

Joey Gibson
źródło
26
Ach - sztuczka polega na tym, aby po prostu dodać org.junit.Assertprzez New Type..., .*wtedy jest domyślna.
KomodoDave,
5
Czy to prawda, że ​​automatyczny import Ctrl+Shift+onie doda niezbędnego importu, a tak naprawdę musisz najechać kursorem i wybrać Add static import..opcję? Szkoda, że ​​nie wyświetla się zwykłe okno dialogowe listy automatycznych importów.
KomodoDave,
2
@ J.Stoever - Jeśli używasz JUnit 4, będziesz chciał użyć formularza Hamcrest:assertThat(value, is(expected));
David Harkness
2
Próbowałem tego z Eclipse Kepler, ale bezskutecznie. Zrestartowałem również Eclipse. Brak autouzupełniania, brak statycznego wyboru importu podczas przeglądania lub naciskania klawiszy CTRL + 1. Czy ktoś tego doświadczył?
Magnilex,
2
Intellij Idea obsługuje to po wyjęciu z pudełka. Wstyd zaćmienie nie.
Neeraj,
242

Jeśli podświetlisz metodę Assert.assertEquals(val1, val2)i naciśniesz Ctrl+ Shift+ M(Dodaj import), doda ją jako import statyczny, przynajmniej w Eclipse 3.4.

Dave L.
źródło
11
cmd-shift-M na komputerze Mac
Joshua Goldberg
15
W Eclipse Juno Udało mi tylko, aby to działało gdybym podświetlić tylko metodę, a następnie użyj SHIFT + CTRL + M.
ktulinho
5
To powinien być zwycięzca!
Clint Eastwood
Działa również dla pól statycznych AX -> X (wysoko AX i Ctrl + Shift + M). Dzięki. Dokładnie to, czego chciałem.
Eyad Ebrahim
5
Działa dla mnie na Lunie. Upewnij się, że kursor znajduje się po prawej stronie kropki. Chciałbym dowiedzieć się o tym lata temu!
HDave
31

Eclipse 3.4 ma sekcję Ulubione pod Window-> Preferencje-> Java-> Editor-> Content Assist

Jeśli używasz org.junit.Assertdużo, możesz znaleźć wartość dodaną tam.

Bill Michell
źródło
21

Nie do końca to, czego chciałem, ale znalazłem obejście. W Eclipse 3.4 (Ganymede) przejdź do

Window-> Preferencje-> Java-> Editor-> Content Assist

i zaznacz pole wyboru Użyj importów statycznych (tylko 1,5 lub więcej) .

Nie spowoduje to importu przy optymalizacji importu, ale jeśli zrobisz szybką poprawkę ( CTRL+ 1) w linii, da ci możliwość dodania importu statycznego, który jest wystarczająco dobry.

Paul Croarkin
źródło
10

Z pomocy Content dla importów statycznych

Aby uzyskać propozycje pomocy dotyczącej treści dla członków statycznych, skonfiguruj listę ulubionych członków statycznych na stronie Java > Editor > Content Assist > Favoritespreferencji Otwiera stronę preferencji Ulubione .
Na przykład, jeśli dodałeś java.util.Arrays.*lub org.junit.Assert.*do tej listy, wówczas wszystkie statyczne metody tego typu pasujące do przedrostka zakończenia zostaną dodane do listy propozycji.

otwarty Window » Preferences » Java » Editor » Content Assist » Favorites

wprowadź opis zdjęcia tutaj

Sumit Singh
źródło
5

Do testów SpringFramework polecam również dodać poniższe

org.springframework.test.web.servlet.request.MockMvcRequestBuilders
org.springframework.test.web.servlet.request.MockMvcResponseBuilders
org.springframework.test.web.servlet.result.MockMvcResultHandlers
org.springframework.test.web.servlet.result.MockMvcResultMatchers
org.springframework.test.web.servlet.setup.MockMvcBuilders
org.mockito.Mockito

Gdy dodasz powyżej jako nowy typ, automatycznie doda. * Do pakietu.

Neeraj
źródło
3

Skrót do importu statycznego: CTRL + SHIFT + M

Michael Hegner
źródło
2

Wybierz stałą, wpisz

Ctrl + 1  (quick fix)

Wybierz „Konwertuj na import statyczny”. z listy rozwijanej.

„Szybka poprawka” ma opcje, nawet jeśli nie jest to błąd.

teknopaul
źródło
1

W Eclipse 4.9 można statycznie importować istniejące wywołania za pomocą szybkiej poprawki.

Wdrożono nową szybką poprawkę, która pozwala użytkownikowi konwertować dostęp do pól statycznych i metody statyczne w celu użycia importu statycznego. Możliwe jest również zastąpienie wszystkich wystąpień jednocześnie.

Więcej informacji tutaj

Ankit Soni
źródło