Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

165
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!