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
.