嗨朋友们在编译以下错误时即将到来
错误:'。class'预期
我无法找到错误。我检查了很多网站,但无法找到为什么会出现此错误。 Plz帮助
提前致谢。
import java.io.*;
class Test
{
boolean isGoodEmployee(boolean ismarried,int noofchild,String middlename,String childnames[])
{
boolean child,letter,last,child;
if (noofchild <= 2)
child=true;
boolean firstletter = middlename.startsWith("k");
boolean lastletter = middlename.endssWith("e");
if (firstletter && (!lastletter))
letter = true;
int lastnameletterscount = lastname.length();
if (lastnameletterscount > 4)
last = true;
String name = raju;
for (int i=0; i < noofchild; i++)
if(name.equalsIgnoreCase(childnames[i]))
{
child = true;
break;
}
}
}
class GoodEmployee
{
public static void main(String args[]) throws IOException
{
String firstname, middlename, lastname;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("enter the first name of employee");
firstname = br.readLine();
System.out.println("enter the middle name of employee");
middlename = br.readLine();
System.out.println("enter the last name of employee");
lastname = br.readLine();
//System.out.println("full name of employee is:"+first+middle+last);
System.out.println("enter employee is married or not");
boolean ismarried = Boolean.parseBoolean(br.readLine());
if (ismarried)
System.out.println("enter number of childrens");
int noofchild = Integer.parseInt(br.readLine());
String childnames[] = new String[noofchild];
System.out.println("enter children names");
for (int i=0; i < noofchild; i++)
childnames[i] = br.readLine();
Test t = new Test();
t.isGoodEmployee(ismarried,noofchild,middlename,childnames[]);
}
}
我正在使用“javac GoodEmployee.java”来编译程序
答案 0 :(得分:4)
您在isGoodEmployee
中遇到了错误匹配的方法调用。
childnames
参数被定义为一个数组,所以你可以直接传入参数,替换:
t.isGoodEmployee(ismarried,noofchild,middlename,childnames[]);
带
t.isGoodEmployee(ismarried,noofchild,middlename,childnames);
除此之外,不要忽略其他编译器错误,例如
middlename.endssWith("e");
^---------extra 's'
熟悉javadocs。
答案 1 :(得分:1)
这段代码有很多错误:
你已经在isGoodEmployee()(第一行)中两次声明了布尔子项
endssWith应该是endsWith()
等等,但不是你说的问题。你用什么命令行来编译这个类?
答案 2 :(得分:0)
@Reimeus已经钉了它。
奇怪的编译错误可以解释如下。在这一行:
t.isGoodEmployee(ismarried,noofchild,middlename,childnames[]);
childnames[]
短语应该是Java表达式。但实际上,语法最类似于一个类型......实际上是一个名为childnames
的某个(不存在的)类的数组。 Java编译器的语法错误恢复代码已决定,如果它在类型名称(即.class
)之后插入childnames[].class
,将提供语法上有效的表达式。
当然,编译器建议的更正是没有意义的......尤其是因为在您的应用程序中不会有名为childnames
的类或接口。
故事的寓意是,不寻常的语法错误有时会导致编译器产生特殊的错误消息,只有在你能弄清楚解析器如何解析错误的输入时才有意义。
答案 3 :(得分:0)
如果您使用的是IDE,则使用main方法创建类。 如果您尝试使用命令窗口运行它,我不认为编译需要'.class'文件,而是需要执行它。因此,通过输入javac GoodEmployee获得.class文件并且没有错误输入java GoodEmployee,它将执行您拥有的.class文件。