Eclipse Оптимізуйте імпорт для включення статичного імпорту


411

Чи все-таки є Eclipse для автоматичного пошуку статичного імпорту? Наприклад, тепер, коли я нарешті перейшов на Junit 4, я хотів би мати можливість написати:

assertEquals(expectedValue, actualValue);

натисніть Ctrl+ Shift+ Oі додайте Eclipse:

import static org.junit.Assert.assertEquals;

Можливо, я занадто багато прошу.

Відповіді:


572

Я використовую Eclipse Europa, який також має розділ Улюблені налаштування:

Вікно> Налаштування> Java> Редактор> Допомога вмісту> Вибране

У мене є такі записи (під час додавання використовуйте "Новий тип" і опустіть .*):

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

Усі, окрім третини, - це імпорт статики. Якщо у мене є "вибрані", якщо я набираю " assertT" і натискаю Ctrl+Space , Eclipse пропонує assertThatяк пропозицію, і якщо я виберу його, він додасть належний статичний імпорт у файл.


26
Ах - хитрість полягає в тому, щоб просто додати org.junit.Assertчерез New Type..., .*тоді це неявно.
KomodoDave

5
Чи правильно, що автоматичний імпорт Ctrl+Shift+oне додасть необхідного імпорту, і насправді потрібно навести курсор і вибрати Add static import..варіант? Прикро, що звичайне діалогове вікно вибору автоматичного імпорту не відображається.
KomodoDave

2
@ J.Stoever - Якщо ви використовуєте JUnit 4, ви хочете скористатися формою Hamcrest:assertThat(value, is(expected));
David

2
Я спробував це з Eclipse Kepler, але безрезультатно. Я також перезапустив Eclipse. Ні автозавершення, ні статичного вибору імпорту під час наведення курсору на клавішу CTTR + 1. Хтось відчував це?
Magnilex

2
Intellij Idea підтримує це без проблем. Соромне затемнення не дає.
Неєрай

242

Якщо виділити метод Assert.assertEquals(val1, val2)і натиснути Ctrl+ Shift+ M(Додати імпорт), він додасть його як статичний імпорт, принаймні в Eclipse 3.4.


11
cmd-shift-M on mac
Джошуа Голдберг

15
У програмі Eclipse Juno мені вдалося змусити його працювати лише тоді, коли я
виділяю

5
Це має бути переможець!
Клінт Іствуд

Працює також для статичних полів AX -> X (hightly AX і Ctrl + Shift + M). Дякую. Саме те, що я хотів.
Еяд Ебрагім

5
Для мене працює на Луну. Переконайтесь, що курсор знаходиться праворуч від періоду. Бажання я дізнався про це років тому!
HDave

31

Eclipse 3.4 має розділ "Вибране" у розділі Вікно-> Налаштування-> Java-> Редактор-> Допомога вмісту

Якщо ви org.junit.Assertбагато використовуєте , ви можете знайти якусь цінність, щоб додати її туди.


21

Не зовсім те, що хотілося, але я знайшов рішення. У Eclipse 3.4 (Ганімед) перейдіть до

Window-> Preferences-> Java-> Editor-> Assist Assist

і встановіть прапорець Використовувати статичний імпорт (лише 1,5 або вище) .

Це не призведе до імпорту оптимізації імпорту, але якщо ви зробите швидке виправлення ( CTRL+ 1) у рядку, це дасть вам можливість додати статичний імпорт, який є досить хорошим.


10

З контенту допомога для статичного імпорту

Щоб отримати допоміжні пропозиції щодо вмісту для статичних членів, налаштуйте свій список улюблених статичних членів на сторінці Java > Editor > Content Assist > Favoritesналаштувань Відкриває сторінку уподобань.
Наприклад, якщо ви додали java.util.Arrays.*або org.junit.Assert.*до цього списку, то всі статичні методи цього типу, що відповідають префіксу завершення, будуть додані до списку пропозицій.

відчинено Window » Preferences » Java » Editor » Content Assist » Favorites

введіть тут опис зображення


5

Для тестів SpringFramework я рекомендую також додати нижче

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

Коли ви додасте вище як новий Тип, він автоматично додається. * До пакету.



2

Виберіть константу, введіть

Ctrl + 1  (quick fix)

Виберіть "Перетворити на статичний імпорт". від падіння вниз.

"Швидке виправлення" має варіанти, хоча це не помилка.


1

У програмі Eclipse 4.9 ви можете статично імпортувати існуючі виклики за допомогою швидкого виправлення.

Було впроваджено нове швидке виправлення, яке дозволяє користувачеві перетворювати статичні поля доступу та статичні методи для використання статичного імпорту. Також можливо замінити всі події одночасно.

Детальніше тут

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.