Elvis Presley, legenda rock and rolla. Są tacy, którzy nie przyjmują do wiadomości informacji o jego śmierci; wierzą, że „król” nie umarł i w prywatności wiedzie spokojne życie. A jak to jest naprawdę…

  • Co pojawi się na ekranie po uruchomieniu poniższego kodu?
public class Elvis {
  // Singleton pattern: there's only one Elvis
  public static final Elvis ELVIS = new Elvis();
  private Elvis() { }
  
  private static final Boolean LIVING = true;
  
  private final Boolean alive = LIVING;
  
  public final Boolean lives() { 
  	return alive; 
  }
  
  public static void main(String[] args) {
  	System.out.println(ELVIS.lives() ?
  	  "Hound Dog" : "Heartbreak Hotel");
  }
}


Odpowiedzi:
(a) Hound Dog
(b) Heartbreak Hotel
(c) różnie w zależności od uruchomienia
(d) żadne z powyższych

  • Odpowiedź uzasadnij i wyjaśnij dlaczego tak to działa
  • Jak poprawić powyższy kod, aby zachowywał się zgodnie z intuicją

Autorami zagadki są Joshua Bloch i William Pugh