Erros de Extração de Método
Ao tentar extrair um método, é possível que ocorra um
ou mais dos seguintes erros comuns:
-
O bloco selecionado faz referência a um tipo local declarado fora da seleção
Uma declaração de tipo local não faz parte da seleção, mas é referida por uma das instruções selecionadas para extração. Estenda a seleção que inclui a declaração de tipo local ou reduza a seleção para que nenhuma referência à declaração de tipo local esteja selecionada.
-
Um tipo local declarado no bloco selecionado é referido fora da
seleção
A seleção abrange uma declaração de tipo local, mas o tipo também é referido fora das instruções selecionadas. Estenda a seleção que inclui todas as referências ao tipo local ou reduza a seleção para que a declaração de tipo local não esteja selecionada.
-
Valor de retorno ambíguo: o bloco selecionado contém mais de uma atribuição
à variável local
Mais de uma atribuição a uma variável local foi encontrada dentro do bloco selecionado. Reduza a seleção em que somente uma atribuição é selecionada ou estenda a seleção em que todas as referências, exceto aquela para as variáveis locais, são inclusas na seleção.
-
Valor de retorno ambíguo: acesso da expressão ao local e instrução de retorno
selecionada
A instrução selecionada gera mais de um valor de retorno. Este será
o caso, por exemplo, se uma expressão for selecionada e o argumento de uma expressão
também for modificado. Para resolver este problema, estenda a seleção para que também
abranja o acesso à leitura do argumento modificado.
-
A seleção contém uma instrução de interrupção, mas o destino de interrupção correspondente
não está selecionado
Para resolver o problema, estenda a seleção para incluir o destino de interrupção / continuação ou reduza a seleção em que a instrução de interrupção / continuação não é incluída na seleção.
-
A seleção contém uma instrução de continuação, mas o destino de continuação correspondente
não está selecionado
Para resolver o problema, estenda a seleção para incluir o destino de interrupção / continuação ou reduza a seleção em que a instrução de interrupção / continuação não é incluída na seleção.
-
Não é possível extrair o novo método da seleção. Apenas as instruções do
corpo de um método de nível superior podem ser extraídas
Essa é uma mensagem de erro genérica mostrada sempre que a seleção não
gera um conjunto de instruções válidas. Cenários comuns em que essa mensagem de erro é mostrada são:
-
um método inteiro está selecionado, não apenas partes de um corpo de método
-
a seleção abrange somente partes de uma instrução. As instruções na detecção do método de extração são separadas por ponto-e-vírgula. Seguem alguns exemplos em que a seleção não marca um conjunto de instruções e, portanto, não podem ser extraídas:
-
foo().bar().baz();
para resolver o problema, selecione toda a cadeia de envio de mensagem
-
int i= foo();
estenda a seleção para abranger toda a declaração
Os usuários podem estender a seleção a um intervalo válido utilizando Expandir
Seleção para no menu Editar.
-
A seleção inicia dentro de um comentário
Partes de um comentário não podem ser extraídas. Estenda a seleção que abrange todo o comentário ou reduza a seleção em que o comentário não está incluso.
-
A seleção termina dentro de um comentário
Partes de um comentário não podem ser extraídas. Estenda a seleção que abrange todo o comentário ou reduza a seleção em que o comentário não está incluso.
-
Não é possível extrair a seleção que termina no meio de uma instrução
Ajuste a seleção de modo que abranja completamente um conjunto de instruções. As instruções na detecção do método de extração são separadas por ponto-e-vírgula.
JDT (Ferramentas de Desenvolvimento Java)
Suporte de Reformulação
Extraindo um Método
Utilizando
Seleção Estruturada
Menu Origem
Menu Reformular