Eclipse Optimize Imports для включения статического импорта

Есть ли способ заставить Eclipse автоматически искать статический импорт? Например, теперь, когда я наконец-то обновился до Junit 4, я бы хотел написать:

assertEquals(expectedValue, actualValue);

нажмите Ctrl + Shift + O и добавьте Eclipse:

import static org.junit.Assert.assertEquals;

Может быть, я слишком много спрашиваю.

8 ответов

Решение

Я использую 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 в качестве предложения, и если я выберу его, он добавит правильный статический импорт в файл.

Если вы выделите метод Assert.assertEquals(val1, val2) и нажмите Ctrl + Shift + M (Добавить импорт), он добавит его как статический импорт, по крайней мере, в Eclipse 3.4.

В Eclipse 3.4 есть раздел "Избранное" в разделе "Окно"> "Настройки"> "Java"> "Редактор"> "Помощник по содержимому".

Если вы используете org.junit.Assert много, вы могли бы найти некоторую ценность, чтобы добавить его там.

Не совсем то, что я хотел, но я нашел обходной путь. В Eclipse 3.4 (Ганимед) перейдите к

Окно-> Настройки->Java-> Редактор->Content Assist

и установите флажок Использовать статический импорт (только 1.5 или выше).

Это не приведет к импорту в Optimize Imports, но если вы сделаете Quick Fix (CTRL + 1) в строке, это даст вам возможность добавить статический импорт, который достаточно хорош.

Из Content Assist для статического импорта

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

открыто Window » Preferences » Java » Editor » Content Assist » Favorites

Для тестов 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

Когда вы добавляете выше как новый тип, он автоматически добавляет.* В пакет.

Ярлык для статического импорта: CTRL + SHIFT + M

В Eclipse 4.9 вы можете статически импортировать существующие вызовы, используя быстрое исправление.

Было реализовано новое быстрое исправление, которое позволяет пользователю преобразовывать статические обращения к полям и статические методы для использования статического импорта. Также возможно заменить все вхождения одновременно.

Подробнее здесь

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

Ctrl + 1  (quick fix)

Выберите "Преобразовать в статический импорт". из выпадающего списка.

"Быстрое исправление" имеет параметры, даже если это не ошибка.

Другие вопросы по тегам