ExpertiDict

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

ScopedValue

/ˈskoʊpt ˈvæljuː/substantivo

Valor imutável compartilhado dentro de um escopo de execução e das threads filhas, alternativa mais segura e barata ao ThreadLocal, finalizada no Java 25.

Onde usar

Aparece em servidores com virtual threads para propagar usuário e requisição. Em review: 'troque o ThreadLocal por ScopedValue'.

Em código

static final ScopedValue<String> USER =
    ScopedValue.newInstance();
ScopedValue.where(USER, "ana").run(() -> {
  System.out.println(USER.get()); // ana
});
// fora do run: USER.get() falha

Exemplos

Bind the user with a ScopedValue instead of a ThreadLocal.

Vincule o usuário com um ScopedValue em vez de um ThreadLocal.

Outside the scope, get throws an exception.

Fora do escopo, o get lança uma exceção.

Cuidado

O valor é imutável e só existe dentro do run ou call; fora dele, get() lança exceção.

Sinônimos

valor com escopo

Antônimos

ThreadLocal

Veja também

Todos os termos de Java