为GWT客户端编译时改变方法体

时间:2012-05-16 10:33:48

标签: java gwt reflection

我有一个问题,我需要在为gwt客户端编译此类时更改方法体。对于服务器端我使用反射,我不需要这个方法用于客户端,所以它可以是空的。这是方法:

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

所以我需要检查typeClass是否是对象的超类或超级接口。

1 个答案:

答案 0 :(得分: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文件中使用super-source来提供您的类的仅客户端版本。