2014-10-30 2 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

+0

Я не знаю, что люди здесь вниз голосовать за вопросы. Пожалуйста, дайте мне знать причину до downvote – majji

+0

Это точный MyClass, который вы используете? Поскольку вы не можете вызывать методы ('dateChooser.changeAutoChildDefaults',' DateField.setDateChooser'), как вы это делали в классе тела (http://stackoverflow.com/questions/6151218/method-calls-inside-a-java-class) – Sithsu

ответ

3

Звоните прямо. С помощью статических методов вам больше не нужно создавать ссылку.

DateChooser.changeAutoChildDefaults(); 
+0

Спасибо @ J.Lucky, я знаю вышеупомянутое решение, но я хочу, чтобы этот объект установил его в моем объекте. Пожалуйста, посмотрите код еще раз – majji

+0

@majji, тогда, может быть, ваш 'changeAutoChildDefaults()' не должен быть «статическим» методом? – lxcky

+0

это статический метод, который является методом Smart Gwt, а не моим собственным методом – majji

 Смежные вопросы

  • Нет связанных вопросов^_^