Errores de extracción de método
Cuando se intenta extraer un método, puede ocurrir uno o varios de los siguientes errores comunes.
-
El bloque seleccionado hace referencia a un tipo local declarado fuera de la selección
Una declaración de tipo local no forma parte de la selección, pero una de las sentencias seleccionadas para extracción le
hace referencia.
O bien se amplía la selección para que incluya la declaración de tipo local, o bien se reduce para que no haga referencia a
la declaración de tipo local que se ha seleccionado.
-
A un tipo local declarado en el bloque seleccionado se le hace referencia fuera de la selección
La selección incluye una declaración de tipo local pero también se hace referencia al tipo fuera de las sentencias
seleccionadas.
O bien se amplía la selección para que incluya todas las referencias al tipo local, o bien se reduce para que no se
seleccione la declaración de tipo local.
-
Valor de retorno ambiguo: el bloque seleccionado contiene más de una asignación a una variable local
En el bloque seleccionado se ha encontrado más de una asignación a una variable local. O bien se reduce la selección para
que solamente se seleccione una asignación, o bien se amplía para que también incluya como mínimo todas las referencias a
las variables locales menos una.
-
Valor de retorno ambiguo: se ha seleccionado un acceso de expresión a una sentencia local y de retorno
La sentencia seleccionada genera más de un valor de retorno. Este es el caso, por ejemplo, cuando se selecciona una expresión y también se modifica el argumento de una expresión. Para solucionar este problema, amplíe la selección para que incluya también el acceso de lectura del argumento modificado.
-
La selección contiene una sentencia break pero no se ha seleccionado el destino de break correspondiente
Para solucionar el problema, o bien se amplía la selección para que incluya el destino de la sentencia break/continue
o bien se reduce para que no incluya la sentencia break/continue.
-
La selección contiene una sentencia continue pero no se ha seleccionado el destino de continue correspondiente
Para solucionar el problema, o bien se amplía la selección para que incluya el destino de la sentencia break/continue, o bien
se reduce para que no incluya la sentencia break/continue.
-
No puede extraerse un método nuevo de la selección. Sólo pueden extraerse sentencias del cuerpo de un método de nivel
superior.
Este es un mensaje de error genérico que se muestra cuando la selección no abarca un conjunto válido de sentencias. A continuación se ofrecen algunos ejemplos típicos que dan lugar a este mensaje de error:
-
se ha seleccionado un método entero, no solo partes del cuerpo de un método
-
la selección incluye solamente partes de una sentencia. A efectos del método de extracción, las sentencias
estás separadas por puntos y coma. En los ejemplos siguientes la selección no marca un conjunto de sentencias y, por lo tanto, no pueden
extraerse:
-
foo().bar().baz();
para solucionar el problema, seleccione toda la cadena de envío del mensaje-
int i= foo();
amplíe la selección para que incluya toda la declaración
Los usuarios pueden ampliar la selección a un rango válido mediante la opción Ampliar selección hasta del menú Editar.
-
La selección empieza dentro de un comentario
No pueden extraerse partes de un comentario. O bien se amplía la selección para que incluya todo el comentario, o bien se
reduce para excluirlo.
-
La selección finaliza dentro de un comentario
No pueden extraerse partes de un comentario. O bien se amplía la selección para que incluya todo el comentario, o bien se
reduce para excluirlo.
-
No puede extraerse una selección que acaba en mitad de una sentencia
Ajuste la selección para que incluya un conjunto de sentencias completas. A efectos del método de extracción, las sentencias
estás separadas por puntos y coma.
Herramientas de desarrollo Java (JDT)
Soporte de propagación
Extraer un método
Utilizar selección estructurada
Menú Código fuente
Menú Propagación