从主Java调用方法

时间:2012-10-19 10:19:34

标签: java

我正在尝试从main方法调用一个方法WriteToFile。以下是我到目前为止的情况:

public void main(String [ ] args)
{
    String fileLoc = Environment.getExternalStorageDirectory() + File.separator + "AccelData.txt";

    File AccelData = new File(fileLoc);

    AccelData.WriteToFile(fileLoc, AccelData);
}

WriteToFile方法是:

public void WriteToFile(String fileLoc, File AccelData){
    //code in here
}

我在AccelData.WriteToFile行下面有一条红线,只是说我应该添加一个无法修复它的演员。

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

首先我想说你的主要方法的签名是不正确的,它是。:

public static void main(String [ ] args)
 {
   // do somthing 
 }

转到此链接 A Closer Look at the "Hello World!" Application

第二,你正在调用一个带有类名的方法,那么该方法应该是static,如下所示

public static void WriteToFile(String fileLoc, File AccelData){
 //code in here
}

或者您必须使用其类对象调用该方法。

public static void main(String [ ] args)
 {
   String fileLoc = Environment.getExternalStorageDirectory() + File.separator + "AccelData.txt";

   File AccelData = new File(fileLoc);

   ClassName className= new ClassName();
   className.WriteToFile(fileLoc, AccelData);
}

答案 1 :(得分:1)

您不能将WriteToFile()方法应用于java.io.File个实例,因为它未在标准Java File类中定义。

您可以应用于代码的另一种方法是将方法声明为静态:

public static void WriteToFile(String fileLoc, File AccelData){
    //code in here
}

在main方法中,只需使用其名称调用它:

WriteToFile(fileLoc, AccelData);

第二种方法是创建一个封装WriteToFile()方法的类的实例,然后在main方法中再次在你的实例上调用该方法:

YourClass obj = new YourClass();
obj.WriteToFile(fileLoc, AccelData);

答案 2 :(得分:0)

如果您在自己的班级中定义方法,则应删除AccelData.部分:

public static void WriteToFile(String fileLoc, File accelData) {
    //code in here
}

public static void main(String [ ] args)
{
    String fileLoc = Environment.getExternalStorageDirectory() + File.separator + "AccelData.txt";

    File accelData = new File(fileLoc);

    WriteToFile(fileLoc, accelData); 
}

您不应该使用初始资本命名变量。这令人困惑。方法也是如此。而你确实需要使这些方法保持静态。