2014-10-30 67 views
-4

我有一個具有靜態方法的類,所以我調用靜態方法而不創建對象引用。 象下面這樣:消除創建調用靜態方法的對象引用

public Class DateChooser extends VLayout implements com.smartgwt.client.widgets.events.HasDataChangedHandlers { 

public static native void changeAutoChildDefaults(String autoChildName, Canvas defaults) /*-{ 
     $wnd.isc.DateChooser.changeDefaults(autoChildName + "Defaults", [email protected]::getConfig()()); 
    }-*/; 

} 


public class Myclass{ 
DateItem dateField;// Smart Gwt class 
dateField = new DateItem("counterDateItem",""); 
DateChooser dateChooser = new DateChooser(); // Smart Gwt class 
dateChooser.changeAutoChildDefaults("hideBtn", canvas); // calling static method 

dateField.setDateChooser(dateChooser); 
} 

怎樣消除用於調用在上述情況下的靜態方法創建對象。

+0

Java基礎:http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html – sp00m 2014-10-30 09:10:26

+0

我不知道的人都到這裏投票的問題。請讓我知道之前downvote的原因 – majji 2014-10-30 09:13:58

+0

是你使用的確切的MyClass?因爲你不能像在類體中那樣調用方法('dateChooser.changeAutoChildDefaults','dateField.setDateChooser')(http://stackoverflow.com/questions/6151218/method-calls-inside-a-java-class ) – Sithsu 2014-10-30 11:57:43

回答

3

直接調用它。使用靜態方法,您不需要再創建一個參考。

DateChooser.changeAutoChildDefaults(); 
+0

謝謝@ J.Lucky,我知道上面的解決方案,但我希望該對象將其設置在我的對象中。請再次查看代碼 – majji 2014-10-30 09:12:51

+0

@majji,那麼也許你的'changeAutoChildDefaults()'不應該是一個'靜態'方法? – lxcky 2014-10-30 09:14:40

+0

它是一種靜態方法,它是智能Gwt方法,而不是我自己的方法 – majji 2014-10-30 09:16:01