Methodenrückgabetyp in der Dimensionsklasse von java.awt

8

Ich bin überrascht zu sehen, dass Getter von height und width Mitglieder return type double haben, obwohl sie int sind. Außerdem hat die Methode setSize mit doppelten Parametern die folgende Definition:

%Vor%

Bitte sehen Sie sich die Klasse Dimension an . Der obige Kommentar besagt, dass Werte nicht über Integer.MAX_VALUE hinausgehen können. Warum? Warum haben wir double dazwischen? Gibt es einen subtilen Grund? Kann mir bitte jemand das erklären? Entschuldigung für mein Beharren!

    
Ahamed 28.02.2012, 18:32
quelle

3 Antworten

3

java.awt.Dimension wurde nachgerüstet, um in das Paket java.awt.geom zu passen, so dass es überall dort verwendet werden kann, wo ein Dimension2D benötigt wird. Die Schnittstelle für das spätere geht um Fließkomma, also muss Dimension auch. Auf int -Felder beschränkt, kann nur eine Teilmenge von double s dargestellt werden. Dimension2D.Float ist in ähnlicher Weise eingeschränkt.

    
Tom Hawtin - tackline 28.02.2012, 18:51
quelle
3

Die Klasse speichert height und width als int , sie stellt nur eine Methode bereit, die auch doppelt akzeptiert, sodass Sie sie mit doppelten Werten aufrufen können (aber sie werden sofort in int umgewandelt). Es gibt andere setSize() -Methoden in dieser Datei, die int -Werte oder sogar ein Dimension -Objekt akzeptieren.

Und da diese Werte als int gespeichert werden, ist ihr maximaler Wert natürlich Integer.MAX_VALUE .

    
talnicolas 28.02.2012 18:35
quelle
0

Sie können die Java Dimension-Klasse mit Ints verwenden. Wenn Sie eine Dimension-Klasse mit doppelter Breite und Höhe benötigen, können Sie Folgendes verwenden:

%Vor%     
Simon Baars 14.02.2018 05:51
quelle

Tags und Links