Double.isFinite Implementierungsdetail - warum DoubleConsts.MAX_VALUE anstatt Double.MAX_VALUE?

8

Ich habe die Implementierung von Double.isFinite() was seit java 8 existiert (weil ich die Funktionalität in Java 7 benötigt habe):

%Vor%

wobei DoubleConsts.MAX_VALUE ist double sun.misc.DoubleConsts.MAX_VALUE mit dem Wert 1.7976931348623157E308 . Dies scheint äquivalent zu Double.MAX_VALUE zu sein, was definiert ist als:

%Vor%

Warum verwendet diese Implementierung die Konstante aus dem sun.misc -Paket anstelle von Double.MAX_VALUE ?

( Float.isFinite verwendet die gleiches Muster)

    
Hulk 22.09.2017, 10:16
quelle

1 Antwort

1

Der Grund scheint hauptsächlich ein historischer zu sein:

Die Funktionalität dieser Methoden wurde zuvor in sun.misc.FpUtils gefunden. Diese Klasse hängt nicht direkt von Double ab, sie importiert nur

%Vor%

so machte die Implementierung dort mehr Sinn - es scheint, dass es genau dasselbe war:

%Vor%

Siehe auch Das Ticket, das zum Verschieben in Double

führte     
Hulk 22.09.2017, 12:36
quelle

Tags und Links