Impacto do Bloco Finalmente no Valor de Retorno
Em Java, o comportamento de um bloco finalmente no valor de retorno de um método pode ser contra -intuitivo . Vamos analisar um snippet de código e aprofundar as razões subjacentes a este fenômeno. String privado s; public string foo () { tentar { s = "dev"; retorno s; } finalmente { s = "Substituir variáveis s"; System.out.println ("Entrada em finalmente bloco"); } } public static void main (string [] xyz) { Teste obj = new test (); System.out.println (obj.foo ()); } }
Quando executado, o código imprime "entrada em finalmente bloco", mas retorna "dev." Isso ocorre porque o valor de retorno é determinado pela execução da instrução Retorno no bloco de tentativas. A alteração feita para 'S' no bloco finalmente ocorre após a conclusão do bloco de tentativa e, portanto, não se reflete no valor de retorno.
public class Test { private String s; public String foo() { try { s = "dev"; return s; } finally { s = "override variable s"; System.out.println("Entry in finally Block"); } } public static void main(String[] xyz) { Test obj = new Test(); System.out.println(obj.foo()); } }
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3