Java ';。类别';使用数组调用方法时出现预期错误

Java ';。类别';使用数组调用方法时出现预期错误,java,Java,到目前为止,我已经买了三本书,看了几段视频,但我仍然不清楚为什么这本书没有编译。如蒙协助,将不胜感激。我正在尝试读取一个信用卡号码文件,并对照用户在我的主帐户中输入的号码进行检查。以下是我的课程,然后是我的主要课程: (感谢您的帮助) import java.util.Scanner; 导入java.io.*; 公共类验证器1 { int[]有效; 公共验证器1()引发IOException { } 公共验证器1(字符串文件名)引发IOException { int开始=0; int

到目前为止,我已经买了三本书,看了几段视频,但我仍然不清楚为什么这本书没有编译。如蒙协助,将不胜感激。我正在尝试读取一个信用卡号码文件,并对照用户在我的主帐户中输入的号码进行检查。以下是我的课程,然后是我的主要课程: (感谢您的帮助)

import java.util.Scanner;
导入java.io.*;
公共类验证器1
{
int[]有效;
公共验证器1()引发IOException
{   
}
公共验证器1(字符串文件名)引发IOException
{   
int开始=0;
int place=0;
int size=0;
文件=新文件(文件名);
扫描仪输入文件=新扫描仪(文件);
扫描仪输入文件2=新扫描仪(文件);
while(inputFile.hasNextInt())
{
大小++;
inputFile2.nextInt();
}
while(inputFile2.hasNextInt()&&place=低)
{
int-middle=(高+低)/2;
if(有效[中间]==数字)
{
返回true;
}
if(有效[中间]<数字)
{
低=中+1;
}
if(有效[中间]>数字)
{
高=中-1;
}
}
返回false;
}
}
导入java.util.Scanner;
导入java.io.*;
公共类收费1
{
公共静态void main(字符串[]args)
{
国际帐户号码;
int[]有效=0;
扫描仪键盘=新扫描仪(System.in);
System.out.println(“输入文件名:”);
字符串fileName1=keyboard.nextLine();
字符串fileName=fileName1+“.txt”;
文件=新文件(文件名);
而(!file.exists())
{
System.out.println(“文件不存在”);
System.out.println(“输入文件名:”);
fileName1=keyboard.nextLine();
fileName=fileName1+“.txt”;
文件=新文件(文件名);
}
System.out.println(“输入您的收费账号:”);
accountNumber=键盘.nextInt();
//Validator1 val=新的Validator1(文件名);
尝试
{
Validator1 val=新的Validator1(文件名);
如果(val.isValid(valid,accountNumber))
System.out.println(“这是一个有效的帐号。”);
其他的
System.out.println(“这是一个无效的帐号。”);
}
捕获(例外e)
{
//System.out.println(“发生错误”);
e、 printStackTrace();
}
}
}
这一行是错误的:

int[] valid = 0;
0不是数组。

此行错误:

int[] valid = 0;

0不是数组。

您的问题在于
ChargeIt1
类,这里:

if(val.isValid(valid[], accountNumber))
    System.out.println("That is a valid account number.");
else
    System.out.println("That is an INVALID account number.");
val.idValid
方法(
valid[]
)的第一个参数是非法语法。将该行替换为以下内容:

if(val.isValid(valid, accountNumber))

这将解决编译器错误。请注意,IDE会很快突出显示这一点,我强烈建议您在刚开始编程时使用它。

您的问题在
ChargeIt1
类中,这里:

if(val.isValid(valid[], accountNumber))
    System.out.println("That is a valid account number.");
else
    System.out.println("That is an INVALID account number.");
val.idValid
方法(
valid[]
)的第一个参数是非法语法。将该行替换为以下内容:

if(val.isValid(valid, accountNumber))

这将解决编译器错误。请注意,IDE会很快突出显示这一点,我强烈建议您在刚开始编程时使用它。

您的代码中有许多错误

要解决这一问题:

int[] valid = 0;  // does not compile
您有几个选项可以修复它:

数组的长度是固定的,要初始化数组,必须提供维度,例如:

int[] valid = new int[10];

但是,由于数组是固定的,因此代码读取的输入可能会超过数组的空间。还有另一种方法-使用集合,它会根据需要自动扩展大小。

您的代码中有许多错误

要解决这一问题:

int[] valid = 0;  // does not compile
您有几个选项可以修复它:

数组的长度是固定的,要初始化数组,必须提供维度,例如:

int[] valid = new int[10];

但是,由于数组是固定的,因此代码读取的输入可能会超过数组的空间。还有另一种方法-使用集合,它会根据需要自动扩展大小。

您的构造函数处理未初始化的数组。编译器会怎么说?你有一些编译器输出吗?不要用答案提供的答案“修复”问题。这使答案变得毫无意义。StackOverflow的真正目标是收集有用的问题和答案(对所问的问题)…构造函数处理未初始化的数组。编译器怎么说?你有一些编译器输出吗?不要用答案提供的答案“修复”问题。这使答案变得毫无意义。StackOverflow的真正目标是收集有用的问题