2

問題があります。このクラスを gwt クライアント用にコンパイルするときに、メソッドの本体を変更する必要があります。サーバー側ではリフレクションを使用していますが、クライアント側ではこのメソッドは必要ないため、空にすることができます。メソッドは次のとおりです。

public void check(Class<?> typeClass, Object object) {
    if (!typeClass.isAssignableFrom(object.getClass()))
        throw new RuntimeException("Check doesn't pass!");
}

したがって、typeClass がオブジェクトのスーパークラスまたはスーパーインターフェイスであるかどうかを確認する必要があります。

4

1 に答える 1

0

GWT.isClient()を使用して、コードがクライアントまたはサーバーで実行されているかどうかを確認できます。

public void check(Class<?> typeClass, Object object) {
    if(!GWT.isClient()) {
        if (!typeClass.isAssignableFrom(object.getClass()))
            throw new RuntimeException("Check doesn't pass!");
        }
    }
}

別の方法として、gwt.xmlファイルでスーパーソースを使用して、クラスのクライアント専用バージョンを提供することもできます。

于 2012-06-16T14:29:07.463 に答える