我目前发现javafx.geometry.Point2D不可序列化。 有没有办法可以自己为这个课程实现界面。
https://docs.oracle.com/javase/8/javafx/api/javafx/geometry/Point2D.html
答案 0 :(得分:1)
您不能通过继承来实现,因为javafx.geometry.Point2D不提供无参数构造函数。您可以通过组合来完成,如下所示。这可能不方便因为getPoint()方法,另一种方法是重现您需要的任何Point2D接口。当我遇到这个时,我只使用了java.awt.Point2D.Double,它是Serializable,但当然没有javafx.geometry.Point2D的丰富界面。
class MyPoint2DByComposition implements Serializable {
Point2D myPoint ;
public MyPoint2DByComposition(double x, double y) {
myPoint = new Point2D(x,y) ;
}
public Point2D getPoint() {
return myPoint ;
}
private void writeObject(java.io.ObjectOutputStream out)
throws IOException {
out.writeDouble(myPoint.getX());
out.writeDouble(myPoint.getY());
}
private void readObject(java.io.ObjectInputStream in)
throws IOException, ClassNotFoundException {
myPoint = new Point2D(in.readDouble(), in.readDouble()) ;
}
}