2016-03-05 3 views

ответ

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()) ;   
    } 
} 
Смежные вопросы