ExpertiDict

Java · Avançado · Inglês · Técnico

invokedynamic

/ɪnˈvoʊkt daɪˈnæmɪk/substantivo

Instrução de bytecode do Java 7 que liga uma chamada a um método só na primeira execução, via bootstrap method. É a base de lambdas e da concatenação de strings.

Onde usar

Aparece em javap -c de código com lambda. Permite que o compilador mude a estratégia sem alterar o formato do bytecode.

Em código

Runnable r = () -> System.out.println("oi");
// javap -c -p mostra:
// invokedynamic #7, 0  // run:()Runnable
// bootstrap: LambdaMetafactory.metafactory

Exemplos

Each lambda is compiled to an invokedynamic call.

Cada lambda é compilada para uma chamada invokedynamic.

The bootstrap method links the call site on first use.

O bootstrap method liga o ponto de chamada no primeiro uso.

Cuidado

O Java não expõe a instrução diretamente: é o compilador que a gera para lambdas, concatenação com + e switch com padrões.

Sinônimos

indy

Veja também

Todos os termos de Java