public class KV<K, V> {
public K key;
public V value;
public KV(K key, V value) {
this.key = key;
this.value = value;
}
}
Я пытаюсь реорганизовать переменную класса value
, которая происходит на месте. Это означает, что диалог не открывается; Я нажимаю кнопку ввода, и он пытается реорганизовать весь проект, включая комментарии, а что нет, в том числе:
<%--<link href="<c:url value="../core/core.css" />" />--%>
в файле .jsp. Это слишком "умно", чтобы попытаться реорганизовать комментарии, которые соответствуют всему проекту. Это часто приводит к большому риску ошибки, а рефакторинг в среде Java более не является безопасным.
То же самое происходило в Intellij 12. Серьезно, мне не нужно Intellij рекомендовать что-либо, что считается небезопасным, или когда оно не уверен, что это одно и то же!
Я могу исключить рефакторинг, но у меня нет времени для оценки пяти "предложений" каждый раз. Это просто повышает вероятность человеческой ошибки: большую часть времени я просто нажимаю кнопку ввода, и все вещи реорганизуются.
Рефакторинг также является серьезной проблемой в среде Java, когда она иногда пытается заменить файлы в .js. Серьезно, это должно прекратиться.
Без всплывающего диалога я не могу отменить "строки поиска". Даже если это было отмечено, Intellij никогда не должен включать предложения по умолчанию, особенно если он находится за пределами текущего файла. Он также может рекомендовать реорганизовать их, но они должны быть исключены по умолчанию. То есть, это должна быть функция выбора, а не по умолчанию уничтожать все.
Это серьезная проблема с пользователем с более поздним так называемым "умным" рефакторингом Intellij. При рефакторинге JS файлов я не хочу искать файлы Java для комментариев или строк! Период! И наоборот!
Безопасность на первом месте! Разработчики, которые знают, что они делают, будут искать сами строки, если это необходимо. В динамической языковой среде это делает Intellij невозможным использовать, потому что часто и без какой-либо четкой картины иногда рефакторинг проходит, иногда он меняет вещи по проекту, а что нет.
Должна быть опция, которая говорит: "рефакторинг только по отношению к этому файлу или когда 100% выведен!", особенно для динамических языков! Для статических языков он не должен даже пытаться искать комментарии и строки вне файла.
Я не собирался публиковать это, но я поставил этот вопрос более 2 лет назад в bugtracker, но никто не обратил внимания.
ИЗМЕНИТЬ
Для тех из вас, кто думает, что я могу уйти далеко, я просто попробовал это:
С этим классом:
public class KV<K, V> {
public K key;
public V val;
public KV(K key, V val) {
this.key = key;
this.val = val;
}
}
И добавив это в класс любой Java, например:
public class CoreConfig {
String abc = "kv.val";
String def = "somethingElse.val";
}
При рефакторинге KV.val
, как и прежде, я получаю следующие рекомендации: ENTER от катастрофы и что-то, что я должен оценивать и исключать по одному. Это требует усилий и просто раздражает и рискованно. Это как кто-то кричит, ОСТАНОВИТЕ! И тогда ох, ничто после минуты, разочарования и 1000 длинного слова эссе (это).
Серьезно, есть ли способ отключить такое рискованное поведение!? И есть ли причина, по которой это по умолчанию?