调用方法给出了非静态方法的错误

时间:2014-01-22 15:17:03

标签: java

我有一个方法名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 个答案:

答案 0 :(得分:0)

如果您从MakeKK致电main(),则有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..

答案 1 :(得分: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 f初始化null,当您调用方法NullPointerException时会导致MakeKK(...)
  • 我建议您遵循Java命名约定。您应该将您的方法称为:nameOfMethod而不是NameOfMethod。最后一个用于命名类,接口...您的方法应该被称为makeKK()