Не могу разыграть org.apache.batik.bridge.UpdateManager - PullRequest
0 голосов
/ 14 декабря 2018

Я исправляю org.apache.batik.bridge.UpdateManager методом переопределения

@Override
public void interrupt() { ... }

, чтобы избежать

java.lang.IllegalStateException: RunnableQueue not started or has exited
at org.apache.batik.util.RunnableQueue.invokeLater(RunnableQueue.java:277)
at java.lang.Thread.run(Unknown Source)

Новый класс

public class SVGUpdateManager extends org.apache.batik.bridge.UpdateManager

При звонке из JSVGCanvas

SVGUpdateManager um = (SVGUpdateManager) getUpdateManager();

я получаю java.lang.ClassCastException, org.apache.batik.bridge.UpdateManager не может быть приведен к SVGUpdateManager

1 Ответ

0 голосов
/ 14 декабря 2018

Хорошо, согласно вашему комментарию, проблема в том, что вы не можете привести суперкласс к подклассу, только подкласс к суперклассу.

Например:

public class Main {

    public static void main(String[] args) {
        A a = new A();
        B castedA = (A) a; // casting is unnecessary
        B b = new B();
        A castedB = (A) b; // class cast exception
    }

    public static class B {

    }

    public static class A extends B {

    }
}

Я думаюВы должны создать экземпляр UpdateManager и обернуть его в свой пользовательский класс (не расширять его функциональность).Затем проксируйте функции исходного экземпляра.

Или вы можете попробовать this

...