Errori di estrazione metodo
Durante l'estrazione di un metodo, potrebbero verificarsi alcuni dei seguenti errori comuni:
-
Il blocco selezionato fa riferimento a un tipo locale dichiarato all'esterno della selezione
Una dichiarazione del tipo locale non fa parte della selezione ma è referenziata da una delle istruzioni selezionate per l'estrazione. Estendere la selezione in modo che includa la dichiarazione del tipo locale o ridurre la selezione in modo che
nessun riferimento alla dichiarazione del tipo locale sia selezionato.
-
Un tipo locale dichiarato nel blocco selezionato è referenziato all'esterno della selezione
La selezione comprende una dichiarazione di tipo locale ma il tipo è referenziato anche all'esterno delle istruzioni selezionate. Estendere la selezione in modo che includa tutti i riferimenti al tipo locale o ridurre la selezione in modo che
la dichiarazione di tipo locale non sia selezionata.
-
Valore restituito ambiguo: il blocco selezionato contiene più di un'assegnazione alla variabile locale
E stata rilevata più di un'assegnazione a una variabile locale all'interno del blocco selezionato. Ridurre la selezione in modo che sia selezionata solo un'assegnazione oppure estendere la selezione in modo che almeno tutti i riferimenti eccetto quello per le variabili locali siano compresi anche dalla selezione.
-
Valore restituito ambiguo: accesso espressione all'istruzione return e local selezionato
L'istruzione selezionata genera più di un valore restituito. Si tratta, ad esempio, del caso in cui un'espressione viene selezionata e un argomento di un'espressione viene modificato. Per risolvere il problema, estendere la selezione in modo da includere anche l'accesso in lettura dell'argomento modificato.
-
La selezione contiene un'istruzione di interruzione ma la corrispondente destinazione di interruzione non è selezionata
Per risolvere il problema, estendere la selezione in modo da includere la destinazione di interruzione / continuazione
o ridurre la selezione in modo che l'istruzione di interruzione / continuazione non sia compresa dalla selezione.
-
La selezione contiene un'istruzione di continuazione ma la corrispondente destinazione di continuazione non è selezionata
Per risolvere il problema, estendere la selezione in modo da includere la destinazione di interruzione / continuazione
o ridurre la selezione in modo che l'istruzione di interruzione / continuazione non sia compresa dalla selezione.
-
Impossibile estrarre il nuovo metodo dalla selezione. E possibile estrarre istruzioni solo dal corpo di un metodo di livello superiore
Questo è un messaggio di errore generico che viene visualizzato tutte le volte che la selezione non genera una serie di istruzioni valide. Scenari tipici in cui questo messaggio potrebbe apparire sono i seguenti:
-
è selezionato un intero metodo e non solo le parti del corpo di un metodo
-
la selezione comprende solo parti di un'istruzione. Le istruzioni nel metodo di estrazione sono separate mediante punto e virgola. Di seguito sono riportati alcuni esempi
in cui la selezione non delimita una serie di istruzioni e, quindi, non può essere estratta:
-
foo().bar().baz();
per risolvere il problema, selezionare l'intera catena di invio del messaggio-
int i= foo();
estendere la selezione per comprendere l'intera dichiarazione
L'utente può estendere la selezione in modo da includere un intervallo valido, utilizzando l'opzione Espandi selezione a nel menu Modifica.
-
La selezione inizia all'interno di un commento
Non è possibile estrarre parti di un commento. Estendere la selezione in modo che comprenda l'intero commento o ridurre
la selezione in modo che il commento venga completamente escluso.
-
La selezione termina all'interno di un commento
Non è possibile estrarre parti di un commento. Estendere la selezione in modo che comprenda l'intero commento o ridurre
la selezione in modo che il commento venga completamente escluso.
-
Impossibile estrarre una selezione che termina nel mezzo di un'istruzione
Modificare la selezione in modo che comprenda completamente una serie di istruzioni. Le istruzioni nel metodo di estrazione sono separate mediante punto e virgola.
JDT (Java development tools)
Supporto refactoring
Estrazione di un metodo
Utilizzo di una selezione strutturata
Menu Origine
Menu Refactor
