目前,我使用矩形和矩形2D(Rectangle2D.Double)交換。矩形和矩形2D差異
我想知道在選擇正確的數據類型時,我會考慮什麼?除了Rectangle(Rectangle2D的子類)有更多的API函數外,我沒有看到任何明顯的區別。
謝謝。
目前,我使用矩形和矩形2D(Rectangle2D.Double)交換。矩形和矩形2D差異
我想知道在選擇正確的數據類型時,我會考慮什麼?除了Rectangle(Rectangle2D的子類)有更多的API函數外,我沒有看到任何明顯的區別。
謝謝。
矩形使用int座標。 Rectangle2D是一個抽象類,不關心你是否使用int,double或float座標。
如果您需要double和float的更高精度,則必須使用Rectangle2D。
矩形的基類,所以如果你正在寫在一個抽象的方式長方形運行的代碼,去爲矩形,並指定像這樣:
Rectangle2D rect = new Rectangle2D.Double(double, double, double, double);
或
Rectangle2D rect = new Rectangle(int, int, int, int)
如果你知道你只是要處理整數,你可以一直使用矩形。
你可能會說Rectangle應該叫做Rectangle2D.Integer。但是這也不完全是因爲例如Rectangle是實現可序列化接口的三個中唯一的一個。
就像skaffman評論的那樣,這有點遺留問題。
class Rectangle extends Rectangle2D, 這意味着您始終可以將Rectangle轉換爲Rectangle2D, ,但相反,您可以使用Rectangle2D.getBounds()。
這是一件遺留的事情。 'Rectangle2D'被添加到比'Rectangle'更高版本的Java中,結果是Sun公司試圖解決它。 – skaffman 2010-02-06 19:47:34