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:
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!
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.
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
.
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%