2012-05-16 61 views
2

我有一個問題,當爲gwt客戶端編譯此類時,我需要更改方法的主體。對於服務器端我使用反射,我不需要這種方法的客戶端,所以它可以是空的。這裏是方法:當爲GWT客戶端編譯時更改方法的主體

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

所以我需要的是檢查typeClass是否是超類或超對象的對象。

+0

爲什麼不使用兩種實現?一個用於服務器端,另一個用於客戶端,它們具有相同的接口,但在客戶端沒有實現。 – ollins

回答

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!"); 
     } 
    } 
} 

作爲替代方案,您可以嘗試使用super-source在gwt.xml文件提供一個唯一的客戶端版本的類。

相關問題