2016-04-18 6 views
0

Я пытаюсь отправить объекты с помощью Kryonet. Для большинства объектов он работает нормально, но для моей собственной реализации Vector он сбой. Класс зарегистрирован с обеих сторон. Он содержит пустой конструктор, и все переменные декалируются как общедоступные.Отправка объекта через Kryonet вызывает сбой

public strictfp class StrictVector2f implements StrictVector 
{ 
    public double x; 
    public double y; 

    public StrictVector2f() 
    { 

    } 

    public StrictVector2f(double x, double y) 
    { 
     this.x = x; 
     this.y = y; 
    } 

    public StrictVector2f(StrictVector2f src) 
    { 
     this.x = src.x; 
     this.y = src.y; 
    } 

    public StrictVector2f(Vector2f src) 
    { 
     this.x = src.x; 
     this.y = src.y; 
    } 

    public StrictVector2f add(StrictVector2f r) 
    { 
     return new StrictVector2f(this.x + r.x, this.y + r.y); 
    } 

    public StrictVector2f sub(StrictVector2f r) 
    { 
     return new StrictVector2f(this.x - r.x, this.y - r.y); 
    } 


    @Override 
    public String toString() 
    { 
     return "StrictVector2f: [" + x + "|" + y + "]"; 
    } 
} 

Ошибка при задании уровня журнала TRACE. Приложение просто вызывает метод disconnected (....). Если я удалю strictfp из определения класса, он все равно не работает.

Проблема возникает, когда я ссылаюсь на StrictVector2f на другой объект и пытаюсь отправить его. Отправка только StrictVector2f работает отлично.

ответ

-1

Если кто-то сталкивается с той же проблемой. Этот крах случается, когда некоторые из сериализаций объектов Kryo настроены неправильно. Убедитесь, что у вас есть пустой конструктор, все переменные общедоступны, все объекты зарегистрированы на всех объектах крио в том же порядке, и если у вас есть несколько объектов, например. сервер и клиент, ПРОВЕРЬТЕ РАВНО. Это была моя проблема.