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

Java 调用方法会给出非静态方法的错误,java,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 有人能看出我的错误吗 如果您从main调用Make

我有一个方法名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
有人能看出我的错误吗

如果您从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..

必须创建包含MakeKK方法的类的实例

所以你用它来调用这个方法

另一种解决方案是使该方法保持静态:

选择正确的方法取决于您在程序中执行的操作,以及您的方法MakeKK执行的操作。您可以通过阅读来了解何时使用静态方法

注:

您正在用null初始化文件f,当您调用MakeKK方法时,这将导致NullPointerException。。。 我建议您遵循Java命名约定。您应该像这样调用您的方法:nameOfMethod而不是nameOfMethod。最后一个用于命名类、接口。。。您的方法应该称为makeKK。
Makekk不是静态方法。错误很明显,还有什么?我怀疑您是从静态方法调用它的。我还怀疑这不是完整的错误信息。请阅读并查看右侧的众多相关问题。
File f = null;
// ... Here you may add some code to avoid NullPointerException
NameOfClass obj = new NameOfClass(...);
obj.MakeKK(...); 
public static void MakeKK(String K1, String K2){
    ....
}