2012-03-05 16 views
7

Come si può vedere nella documentazione Oracle per java.awt.Point, xey sono memorizzati come int. Tuttavia, getX e getY restituiscono double. Mentre esiste un metodo setLocation che richiede 2 tipi double, non esiste alcun costruttore. Inoltre, lo double viene troncato internamente comunque a int.Perché java.awt.Point fornisce metodi per impostare e ottenere i doppi, ma memorizza xey come int?

C'è una buona ragione per questo? È possibile evitare un cast su setLocation con un metodo che richiede i tipi double, ma si ha il problema opposto quando si chiama getX e getY. C'è anche un travisamento della precisione della classe Point restituendo un double da getX e getY.

risposta

7

Poiché si estende da java.awt.geom.Point2D utilizzato nella classe astratta Graphics2D. È stato implementato in questo modo per motivi di compatibilità poiché prima di questo, java supportava solo java.awt.Graphics dove tutti i metodi sono basati su int.

Problemi correlati