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

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

assertEquals(expectedValue, actualValue);

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

import static org.junit.Assert.assertEquals;

Может, я слишком многого прошу.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
417
0
106 249
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

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

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

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

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

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

В Eclipse Juno мне удалось заставить его работать, только если я выделил только метод, а затем использовал CTRL + SHIFT + M.

ktulinho 25.04.2013 15:43

Это должно быть победителем!

Clint Eastwood 08.08.2013 14:09

Работает также для статических полей A.X -> X (сильно A.X и Ctrl + Shift + M). Спасибо. Именно то, что я хотел.

Eyad Ebrahim 27.09.2013 17:19

Большой! Мне так не хватало этой функции

Anton 10.10.2013 13:59

У меня работает на Luna. Убедитесь, что ваш курсор находится справа от точки. Жаль, что я не узнал об этом много лет назад!

HDave 26.08.2014 21:53

@yair - у меня тоже не работает в Kepler 4.3 assertEquals(3, team.getGamesWon())

Erran Morad 06.10.2014 03:54

ОБНОВЛЕНИЕ: работает на Eclipse Марс. Просто поместите курсор где-нибудь на методе.

informatik01 12.11.2015 17:45

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

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

Ответ принят как подходящий

Я использую Eclipse Europa, в котором также есть раздел любимых предпочтений:

Window > Preferences > Java > Editor > Content Assist > Favorites

У меня есть следующие записи (при добавлении используйте «Новый тип» и опускайте .*):

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

Все, кроме третьей, являются статическим импортом. Имея их в качестве избранных, если я наберу «assertT» и нажму Ctrl + Space, Eclipse предложит assertThat в качестве предложения, и если я выберу его, он добавит правильный статический импорт в файл.

Да, круто, но, чувак, у тебя есть только совпадения для хамкреста. Это не приносит с собой AssertThat ..?

Rob 19.04.2012 01:05
утверждать, что находится на утверждении
plasma147 23.06.2012 12:53

Если вы попробуете это в Eclipse 4.2 "Juno", добавление .* будет запрещено, поэтому вы должны вручную ввести New Member -> org.junit.Assert.assertEquals и так далее. У кого-нибудь есть лучшее решение для этого?

KomodoDave 30.08.2012 16:51

Ах, уловка состоит в том, чтобы просто добавить org.junit.Assert через New Type..., тогда .* будет неявным.

KomodoDave 30.08.2012 17:01

Верно ли, что автоматический импорт Ctrl+Shift+o не добавляет необходимый импорт, и на самом деле вы должны навести курсор и выбрать опцию Add static import..? Жаль, что обычный диалог списка выбора автоимпорта не отображается.

KomodoDave 30.08.2012 17:07

Это больше не работает. Я добавил записи точно так, как показано, но теперь мне будет предложено что угодно, если я наберу «asserte» и и ctrl + space. Есть идеи ?

J. Stoever 30.09.2012 01:35

@ J.Stoever - Если вы используете JUnit 4, вы захотите использовать форму Hamcrest: assertThat(value, is(expected));

David Harkness 05.10.2012 04:46

Также используйте Java -> Редактор -> Сохранить действия -> Выберите «Организовать импорт». Он автоматически организует ваш импорт каждый раз, когда вы сохраняете. Поэтому нужно использовать любые ярлыки.

Barun 24.10.2013 11:08

Пытался достать assertEquals(...). В Eclipse kepler 4.3 я попробовал asserte, а затем ctrl + space. Он дает мне все методы, которые начинаются с asserte. Спасибо.

Erran Morad 06.10.2014 04:02

Вы также можете установить количество импортов, необходимых для использования .* в статическом импорте, равным 1. Но имейте в виду, что в этом случае вы не должны использовать статический импорт для классов, которые содержат члены класса со слишком общими именами (например, не используйте статический импорт с .* для классов с getInstance).

Maarten Bodewes 16.10.2014 16:12

Я пробовал это с Eclipse Kepler, но безуспешно. Я также перезапустил Eclipse. Нет автодополнения, нет выбора статического импорта при наведении курсора или нажатии CTRL + 1. Кто-нибудь сталкивался с этим?

Magnilex 20.11.2014 13:17

Intellij Idea поддерживает это из коробки. Затмение стыда - нет.

Neeraj 22.02.2018 12:27

не интуитивно понятный уровень выше 9000!

ihebiheb 25.03.2021 23:03

От Помощник по содержанию для статического импорта

To get content assist proposals for static members configure your list of favorite static members on the Opens the Favorites preference page Java > Editor > Content Assist > Favorites preference page.
For example, if you have added java.util.Arrays.* or org.junit.Assert.* to this list, then all static methods of this type matching the completion prefix will be added to the proposals list.

Открыть 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

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

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

A new quick fix has been implemented that allows the user to convert static field accesses and static methods to use a static import. It's also possible to replace all occurrences at the same time.

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

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

Ctrl + 1  (quick fix)

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

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

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

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