Sind Instanzen von Class-Klassen garantiert Singletons pro Classloader?

8

So ist es möglich, auf diese Weise nach Klassengleichheit zu suchen:

%Vor%

Wahrscheinlich lautet die Antwort ja, weil die Klasse class equals() nicht überschreibt, sodass es aussieht, als ob Object.equals() für die Klassengleichheit gilt. Aber ich wäre interessiert, wenn dies anderswo dokumentiert wird. Danke.

    
Nazaret K. 28.04.2016, 10:55
quelle

1 Antwort

6

Siehe JLS Abschnitt 12.2 :

  

Gut funktionierende Klassenlader haben diese Eigenschaften:

     
  • Unter dem gleichen Namen sollte ein Lader einer guten Klasse immer das gleiche Klassenobjekt zurückgeben.
  •   
  • ...
  •   

Ein bösartiger Klassenlader könnte diese Eigenschaften verletzen. Es konnte jedoch die Sicherheit des Typsystems nicht untergraben, da die Java Virtual Machine dagegen wehrt.

Wenn also Ihre Instanzen aus Klassen bestehen, die vom selben Klassenlader geladen wurden, können Sie die Identität testen.

    
Andy Turner 28.04.2016, 11:03
quelle

Tags und Links