在 Java 中出现 "cannot find symbol" 错误
Getting "cannot find symbol" error in Java
我正在编写一些代码来从文本板读取静态股票编号。我 运行 看看出了什么问题,我似乎无法修复这个找不到符号的错误。
import java.io.*;
import java.util.*;
public class StockMarket
{
public static void main(String[] args) throws IOException
{
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter the filename: ");
String filename = keyboard.nextLine();
File file = new File(filename);
Scanner inputFile = new Scanner(file);
while (inputFile.hasNext())
{
checkValidity();
}
inputFile.close();
}
public static boolean checkValidity()
{
String line = inputFile.nextLine();
double numberOfShares = inputFile.nextDouble();
double buyPricePerShare = inputFile.nextDouble();
double buyComissionRate = inputFile.nextDouble();
double sellPricePerShare = inputFile.nextDouble();
double sellComissionRate = inputFile.nextDouble();
}
}
您的方法checkValidity
行不通。您尝试访问方法中未知的变量 inputFile
。您必须将 is 作为参数传递。
public static boolean checkValidity(Scanner inputFile)
{
String line = inputFile.nextLine();
double numberOfShares = inputFile.nextDouble();
double buyPricePerShare = inputFile.nextDouble();
double buyComissionRate = inputFile.nextDouble();
double sellPricePerShare = inputFile.nextDouble();
double sellComissionRate = inputFile.nextDouble();
}
您的 checkValidity()
方法几乎没有问题,如下所述:
(1) 您的 Scanner
对象作用域仅存在于 main
方法 中,因此将该对象传递给 checkValidity
方法
(2) 验证 checkValidity
方法中的输入
(3) 您的 checkValidity
方法具有 return
类型的 boolean
,因此您需要 return
一个 boolean
来自它的值 即,如果验证成功,return true
或者如果验证失败,return false
您参考以下带有内联注释的代码:
public static boolean checkValidity(Scanner inputFile) {
String line = inputFile.nextLine();
double numberOfShares = inputFile.nextDouble();
double buyPricePerShare = inputFile.nextDouble();
double buyComissionRate = inputFile.nextDouble();
double sellPricePerShare = inputFile.nextDouble();
double sellComissionRate = inputFile.nextDouble();
boolean validationSuccess = false;
//validate your inputs
// If validations are successful then set validationSuccess = true;
return validationSuccess;//return boolean
}
此外,从 main()
传递 scanner
对象,如下所示:
while (inputFile.hasNext()) {
checkValidity(inputFile);//pass scanner object
}
我正在编写一些代码来从文本板读取静态股票编号。我 运行 看看出了什么问题,我似乎无法修复这个找不到符号的错误。
import java.io.*;
import java.util.*;
public class StockMarket
{
public static void main(String[] args) throws IOException
{
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter the filename: ");
String filename = keyboard.nextLine();
File file = new File(filename);
Scanner inputFile = new Scanner(file);
while (inputFile.hasNext())
{
checkValidity();
}
inputFile.close();
}
public static boolean checkValidity()
{
String line = inputFile.nextLine();
double numberOfShares = inputFile.nextDouble();
double buyPricePerShare = inputFile.nextDouble();
double buyComissionRate = inputFile.nextDouble();
double sellPricePerShare = inputFile.nextDouble();
double sellComissionRate = inputFile.nextDouble();
}
}
您的方法checkValidity
行不通。您尝试访问方法中未知的变量 inputFile
。您必须将 is 作为参数传递。
public static boolean checkValidity(Scanner inputFile)
{
String line = inputFile.nextLine();
double numberOfShares = inputFile.nextDouble();
double buyPricePerShare = inputFile.nextDouble();
double buyComissionRate = inputFile.nextDouble();
double sellPricePerShare = inputFile.nextDouble();
double sellComissionRate = inputFile.nextDouble();
}
您的 checkValidity()
方法几乎没有问题,如下所述:
(1) 您的 Scanner
对象作用域仅存在于 main
方法 中,因此将该对象传递给 checkValidity
方法
(2) 验证 checkValidity
方法中的输入
(3) 您的 checkValidity
方法具有 return
类型的 boolean
,因此您需要 return
一个 boolean
来自它的值 即,如果验证成功,return true
或者如果验证失败,return false
您参考以下带有内联注释的代码:
public static boolean checkValidity(Scanner inputFile) {
String line = inputFile.nextLine();
double numberOfShares = inputFile.nextDouble();
double buyPricePerShare = inputFile.nextDouble();
double buyComissionRate = inputFile.nextDouble();
double sellPricePerShare = inputFile.nextDouble();
double sellComissionRate = inputFile.nextDouble();
boolean validationSuccess = false;
//validate your inputs
// If validations are successful then set validationSuccess = true;
return validationSuccess;//return boolean
}
此外,从 main()
传递 scanner
对象,如下所示:
while (inputFile.hasNext()) {
checkValidity(inputFile);//pass scanner object
}