Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

166
Visualizações
Superar la publicación incorrecta en Java

Encontré la siguiente clase en el libro "Concurrencia de Java en la práctica". El autor afirma que el estado del Titular puede ser obsoleto en el siguiente ejemplo, lo que resulta en AssertionError cuando se llama a assertSanity. ¿Cómo se puede hacer inmutable la siguiente clase de titular para superar esto?

 public class Holder{ private int n; public Holder(int n) { this.n = n;} public void assertSanity() { if(n != n) throw new AssertionError(" this statement is false"); } } //unsafe publication public Holder holder; public void initialize(){ holder = new Holder(42); }
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Para hacer que la clase Holder sea inmutable, simplemente cambie

 private int n;

para

 private final int n;

También puede agregar un método getter público (no synchronized ) para el campo Holder.n , si lo desea. No tiene mucho sentido tener un campo privado que nada pueda usar.

(Pero deshágase de la afirmación de assertSanity porque no tiene ningún uso terrenal).

Cuando haya hecho lo anterior, Holder será inmutable con respecto al campo n , y no tendrá que preocuparse por la publicación insegura de ese campo.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda