2014-01-22 21 views
-2

的錯誤我有一個方法名MakeKK調用方法給出了非靜態方法

public void MakeKK(String K1, String K2){ 
    .... 
} 

我嘗試調用此方法在這下面的方式,

File f = null; 

MakeKK(f.getAbsolutePath()+ "\\Text.txt", f.getAbsolutePath()+"\\Text2.txt"); 

但它給出了一個錯誤

Error: non-static method MakeKK 

任何人都可以發現我的錯誤嗎?

+2

'Makekk'不是'靜態'方法。 –

+0

錯誤很明顯,還有什麼? –

+0

我懷疑你是從一個靜態方法調用它*。我也懷疑這不是完整的錯誤信息。請閱讀http://tinyurl.com/so-list並查看右邊的許多相關問題。 –

回答

0

如果要調用從main()MakeKK,你有3個選項

1. Make MakeKK static.. 
2. Create an instance of class containing MakeKK and use the instance to call MakeKK. 
3. You will get NullPointerException when you run your code as f is null.. 
0

你必須創建一個「包含」 MakeKK()方法的類的實例。

File f = null; 
// ... Here you may add some code to avoid NullPointerException 
NameOfClass obj = new NameOfClass(...); 
obj.MakeKK(...); 

所以你用它來調用該方法。

另一種解決方案將使得該方法static

public static void MakeKK(String K1, String K2){ 
    .... 
} 

選擇正確的方式取決於你的程序在做什麼,以及你的方法MakeKK()做。您可以閱讀this SO post以瞭解何時使用static方法。

注:

  • 要初始化File fnull,當你調用方法MakeKK(...)
  • ,這將導致進入NullPointerException我建議你遵循Java的命名約定。你應該打電話給你的方法如下:nameOfMethod而不是NameOfMethod。這最後一個命名類,接口時使用...您的方法應該被稱爲​​。