10

heightのゲッターとwidthメンバーがreturnタイプを持っているのを見て驚いてdoubleいますint。さらに、setSizedoubleパラメーターを使用するメソッドには、次の定義があります。

/**
 * Sets the size of this <code>Dimension</code> object to
 * the specified width and height in double precision.
 * Note that if <code>width</code> or <code>height</code>
 * are larger than <code>Integer.MAX_VALUE</code>, they will
 * be reset to <code>Integer.MAX_VALUE</code>.
 *
 * @param width  the new width for the <code>Dimension</code> object
 * @param height the new height for the <code>Dimension</code> object
 */
public void setSize(double width, double height) {
    this.width = (int) Math.ceil(width);
    this.height = (int) Math.ceil(height);
}

Dimensionクラスをご覧ください。上記のコメントは、値がInteger.MAX_VALUEを超えることはできないことを示しています。なんで?なぜdouble間にあるのですか?微妙な理由はありますか?誰かが私にこれを説明できますか?私の主張でごめんなさい!

4

3 に答える 3

4

java.awt.Dimensionパッケージに収まるように後付けされているため、必要なjava.awt.geom場所で使用できますDimension2D。後者のインターフェースは浮動小数点を扱うため、浮動小数点も扱う必要Dimensionがあります。intフィールドに限定されているため、 のサブセットのみdoubleを表すことができます。Dimension2D.Float同様に制限されます。

于 2012-02-28T18:51:28.957 に答える
3

クラスは格納heightwidthれておりint、 double も受け入れるメソッドを提供するだけなので、 double 値で呼び出すことができます (ただし、すぐに int にキャストされます)。このファイルには、値またはオブジェクトsetSize()を受け入れる他のメソッドがあります。intDimension

これらの値は として保存されるintため、もちろん最大値はInteger.MAX_VALUEです。

于 2012-02-28T18:35:29.487 に答える