我正在使用一個包含非靜態方法調用的包。 它不會讓我從靜態上下文中調用此方法。 我無法更改非靜態方法,我該如何調用此方法?Java靜態上下文
2
A
回答
5
從該類中創建一個對象並調用該對象的方法?
import com.acme.myclass;
...
MyClass obj = new MyClass();
obj.nonStaticMethod();
如果您正在使用的包有任何文件,一定要看看通過它來了解您的預計使用類及其非靜態方法。您可能還想了解更多關於面向對象編程中的靜態和非靜態的更多信息,以更好地瞭解這些差異。
5
爲了調用非靜態方法,您必須調用對象實例的方法。
考慮下面的類:
public class MyClass {
public void nonStaticMethod();
}
你會調用該方法,像這樣:
new MyClass().nonStaticMethod();
或者,如果你需要調用該方法不止一次,你可以將它保存到一個目的。
MyClass instance = new MyClass();
instance.nonStaticMethod();
...
instance.nonStaticMethod();
0
靜態方法不需要實例化,而實例方法在實例類內部實現。
要獲得實例方法,首先需要使用new
關鍵字的類實例。然後你可以訪問這個類的實例方法。
1
該方法屬於一個類。
所以,你需要做的是創建一個類的實例(與新的運營商最有可能的),然後使用它:
package a;
class A {
public void theMethod(){
}
}
.....
package b;
import a.A;
class Main {
public static void main(String [] args) {
A a = new A();
a.theMethod();
}
}
0
非靜態(實例)不能從靜態稱爲上下文。其他方式是可能的。
1
每當你需要調用非靜態方法可以實例化類的一個對象,喜歡的東西:
new BadlyWrittenClass().BadlyWrittenMethod();
但是,如果你打算做這個有很多,它可能以這種方式繼續創建和銷燬對象變得效率低下。
更好的辦法可能是實例化一個對象,比如在你自己的類構造函數中,並且只需要在你需要調用該方法時使用它。假如它不需要每次都有新的初始化對象,那可能會更有效率。
但是,您可能還想記住,可能有一個原因爲什麼該方法不是靜態的(儘管我在上面的類和方法名稱中沒有那麼微妙的戳)。確保在創建新實例時不需要設置某些狀態。換句話說,不要盲目地嘗試這樣做而不理解。
相關問題
- 1. 的Java不能從靜態上下文
- 2. 的Java非靜態方法不能從靜態上下文
- 3. 的Java:非靜態變量不能從靜態上下文
- 4. 靜態上下文中的非靜態變量引用(Java)
- 5. JAVA:非靜態變量randomNums不能從靜態上下文
- 6. 從靜態上下文
- 7. 靜態上下文錯誤
- 8. 靜態上下文警告
- 9. java:非靜態變量不能從靜態上下文中引用錯誤
- 10. Java錯誤「非靜態變量不能從靜態上下文中引用」
- 11. 非靜態方法getAssets不能從靜態上下文中引用(Java)(Android)
- 12. 的Java:非靜態變量這不能從靜態上下文中引用
- 13. 非靜態變量這不能在Java中的靜態上下文中引用
- 14. java:非靜態變量不能從靜態上下文中引用錯誤
- 15. Java非靜態方法playCompletely不能從靜態上下文中引用
- 16. JAVA「非靜態變量,這不能從靜態上下文中引用」
- 17. 非靜態方法不能從靜態上下文中引用(Java)
- 18. java非靜態方法getBalance不能從靜態上下文中引用
- 19. 非靜態字符串不能從靜態上下文
- 20. 從靜態上下文引用的非靜態變量
- 21. 非靜態變量不能從靜態上下文引用
- 22. 非靜態類不能從靜態上下文中引用
- 23. 非靜態變量列表不能從靜態上下文
- 24. 非靜態方法不能從靜態上下文中引用?
- 25. 非靜態變量不能從靜態上下文中引用
- 26. 從非靜態的上下文調用靜態方法
- 27. 非靜態方法()不能從靜態上下文
- 28. 非靜態setGravity不能從靜態上下文中引用
- 29. 非靜態方法不能從靜態上下文中引用?
- 30. 非靜態編輯()不能從靜態上下文中引用
你學了多少Java?看起來你會從閱讀一些基本的Java教程中受益。 – jjnguy 2010-11-09 01:44:55
http://download.oracle.com/javase/tutorial/ – jjnguy 2010-11-09 01:45:25