public class KV<K, V> {
public K key;
public V value;
public KV(K key, V value) {
this.key = key;
this.value = value;
}
}
Sto cercando di rifattorizzare la variabile di classe value, che avviene sul posto. Ciò significa che non viene visualizzata alcuna finestra di dialogo; Premo invio e prova a eseguire il refactoring dell'intero progetto, inclusi commenti e cosa no, tra cui:
<%--<link href="<c:url value="../core/core.css" />" />--%>
in un file .jsp. Questo è troppo "intelligente" per provare a refactoring di commenti che corrispondono all'intero progetto. Questo spesso causa molti rischi di bug e il refactoring in un ambiente Java non è più sicuro.
La stessa cosa stava accadendo in Intellij 12. Seriamente, non ho bisogno che Intellij consigli qualcosa che è considerato non sicuro, o quando non è sicuro che sia la stessa cosa!
Posso escludere i refactoring ma non ho tempo per valutare ogni volta cinque "suggerimenti". Aumenta solo la possibilità di errore umano: la maggior parte delle volte premo semplicemente Invio e le cose woops vengono refactoring.
Il refactoring è anche un grosso problema in un ambiente Java quando a volte tenta di sostituire le cose nei file .js. Seriamente, questo deve finire.
Senza la finestra di dialogo popup, non posso deselezionare "stringhe di ricerca". Anche se fosse spuntato, Intellij non dovrebbe mai includere i suggerimenti per impostazione predefinita, specialmente quando è al di fuori del file corrente. Può consigliare anche il refactoring, ma dovrebbero essere esclusi per impostazione predefinita. Cioè, dovrebbe essere una funzione di attivazione, piuttosto che per impostazione predefinita distruggere tutto.
Questo è un grave problema di esperienza utente con il più recente refactoring Intellij "intelligente". Durante il refactoring dei file JS, non voglio cercare nei file Java commenti o stringhe! Periodo! E viceversa!
La sicurezza viene prima di tutto! Gli sviluppatori che sanno cosa stanno facendo cercheranno le stringhe se necessario. In un ambiente linguistico dinamico rende Intellij impossibile da usare, perché frequentemente, e senza uno schema chiaro, a volte passano i refactoring, a volte cambia le cose nel progetto e cosa no.
Dovrebbe esserci un'opzione che dice "refactoring solo relativo a questo file o quando dedotto al 100%!", Specialmente per i linguaggi dinamici! Per i linguaggi statici non dovrebbe nemmeno tentare di cercare commenti e stringhe all'esterno del file.
Non volevo renderlo pubblico, ma ho sollevato questo problema più di 2 anni fa nel bugtracker, ma nessuno ha prestato attenzione.
MODIFICARE
Per quelli di voi che pensano che potrei andare troppo lontano, ho appena provato questo:
Con questa classe:
public class KV<K, V> {
public K key;
public V val;
public KV(K key, V val) {
this.key = key;
this.val = val;
}
}
E aggiungendolo a qualsiasi classe Java, ad esempio:
public class CoreConfig {
String abc = "kv.val";
String def = "somethingElse.val";
}
Quando eseguo KV.valil refactoring come prima, ottengo i seguenti consigli, un INVIO dal disastro e qualcosa che devo valutare ed escludere uno alla volta. Ci vuole impegno ed è solo fastidioso e rischioso. È come se qualcuno gridasse, STOP! E poi ooh, niente dopo un minuto, frustrazione e un saggio di 1000 parole lunghe (questo).

Sul serio, c'è un modo per disabilitare questo tipo di comportamento rischioso !? E c'è qualche motivo per cui questo è attivo per impostazione predefinita?
EDIT 20200706
La merda continua nel 2020: https://youtrack.jetbrains.com/issue/IDEA-245370