1
我目前注意到javafx.geometry.Point2D不可序列化。 有没有什么办法可以为这个类自己实现接口。javafx.geometry.Point2D - 使其可序列化
https://docs.oracle.com/javase/8/javafx/api/javafx/geometry/Point2D.html
我目前注意到javafx.geometry.Point2D不可序列化。 有没有什么办法可以为这个类自己实现接口。javafx.geometry.Point2D - 使其可序列化
https://docs.oracle.com/javase/8/javafx/api/javafx/geometry/Point2D.html
您不能继承做,因为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()) ;
}
}