java 调用方法失败,因为方法未定义
java calling method fails as method undefined
我写了一个方法来检查特定文件以计算它有多少行:
public int countFileRecords()
{
Scanner in = new Scanner (new FileInputStream("src/data/VinylRecords.txt"));
int lines = -1;
while (in.hasNextLine()) //loop while there is a new line
{lines +=1; // add one to my counter
in.nextLine();} // move to the next line and loop again
return lines;
}
但是当我尝试从另一个 class 调用它时,我收到错误消息“该方法未定义该类型”
public class Test
{
public static void main(String[] args)
{
System.out.println(countFileRecords());
}
我还在学习java,我想我需要做点什么来告诉这个class该叫什么。
我希望能够调用 运行 检查文件当前行数的方法 - 但我认为所有信息都在该方法中,所以这应该可以工作。我想了解为什么没有这样我可以更正它。谢谢
public class Test
{
public static void main(String[] args)
{
System.out.println(countFileRecords());
}
像这样调用方法(仅使用调用它的方法的名称)不会编译,您可以在静态方法中调用同一个 class 中的另一个静态方法,或导入的静态方法在另一个 class.
中声明
因此您应该在声明中将 countFileRecords 方法设为静态(添加 static 关键字),然后使用 import static 进行导入,以便仅使用方法名称即可直接调用它:
package com;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Main {
public static int countFileRecords()
{
Scanner in=null;
try {
in = new Scanner(new FileInputStream("src/data/VinylRecords.txt"));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int lines = -1;
while (in.hasNextLine()) // loop while there is a new line
{
lines += 1; // add one to my counter
in.nextLine();
} // move to the next line and loop again
return lines;
}
}
package com;
import static com.Main.countFileRecords;
public class Test {
public static void main(String[] args) {
System.out.println(countFileRecords());
}
}
我写了一个方法来检查特定文件以计算它有多少行:
public int countFileRecords()
{
Scanner in = new Scanner (new FileInputStream("src/data/VinylRecords.txt"));
int lines = -1;
while (in.hasNextLine()) //loop while there is a new line
{lines +=1; // add one to my counter
in.nextLine();} // move to the next line and loop again
return lines;
}
但是当我尝试从另一个 class 调用它时,我收到错误消息“该方法未定义该类型”
public class Test
{
public static void main(String[] args)
{
System.out.println(countFileRecords());
}
我还在学习java,我想我需要做点什么来告诉这个class该叫什么。
我希望能够调用 运行 检查文件当前行数的方法 - 但我认为所有信息都在该方法中,所以这应该可以工作。我想了解为什么没有这样我可以更正它。谢谢
public class Test
{
public static void main(String[] args)
{
System.out.println(countFileRecords());
}
像这样调用方法(仅使用调用它的方法的名称)不会编译,您可以在静态方法中调用同一个 class 中的另一个静态方法,或导入的静态方法在另一个 class.
中声明因此您应该在声明中将 countFileRecords 方法设为静态(添加 static 关键字),然后使用 import static 进行导入,以便仅使用方法名称即可直接调用它:
package com;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Main {
public static int countFileRecords()
{
Scanner in=null;
try {
in = new Scanner(new FileInputStream("src/data/VinylRecords.txt"));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int lines = -1;
while (in.hasNextLine()) // loop while there is a new line
{
lines += 1; // add one to my counter
in.nextLine();
} // move to the next line and loop again
return lines;
}
}
package com;
import static com.Main.countFileRecords;
public class Test {
public static void main(String[] args) {
System.out.println(countFileRecords());
}
}