我正在尝试检查用户的输入是否是不同方法属性的对象的一部分。换句话说,我要求用户输入名称,我想检查该名称是否作为人的属性存在。我在person类中有一个方法来检查名称是否存在,但我不确定如何执行该方法。
我的第一堂课:
userInput = "xxx";
if(????? == -1){
System.out.println("Person is nowhere to be found :(");
}
第二课:
int FindPersonName(String person)
{
for (int i = 0 ; i < totalPersonCount ; i++)
{
if (person[i].getName().equals(person))
{
System.out.println(person[i].getName());
return person[i].getName() //Defined elsewhere
}
}
System.out.println(person + " does not exist in person list.");
return -1;
}
所以我的问题是这样的:????对于头等舱?
编辑:现在收到错误,说非静态方法无法从非静态上下文中引用?
再次编辑:谢谢大家:D使FindBoatNames方法成为静态,并且在if语句中做了Fleet.FindBoatNames(userInput)== -1,并且它工作得很完美。
答案 0 :(得分:2)
如果他们在同一个班级
if(FindPersonName(userInput ) == -1){
}
或不同的类,不是静态方法,您需要创建一个对象。
喜欢
if(new ClassOfThatMethod().FindPersonName(userInput) == -1){
}
P.S。遵循java命名约定,方法名称以小写字母开头。 FindPersonName
应为findPersonName
答案 1 :(得分:2)
这样做
if(obj.FindPersonName(userInput)==-1){
}
或者将FindPersonName()方法设为静态,并调用如下
if(FindPersonName(userInput)==-1){
}
答案 2 :(得分:0)
这个怎么样:
userInput = "xxx";
if(findPersonByName(userInput) == -1){
System.out.println("Person is nowhere to be found :(");
} else {
System.out.println("Person found with id");
}
但是你需要在第二个类中返回另一个大于-1的整数:
int FindPersonName(String person)
{
for (int i = 0 ; i < totalPersonCount ; i++)
{
if (person[i].getName().equals(person))
{
System.out.println(person[i].getName());
return 1;
}
}
System.out.println(person + " does not exist in person list.");
return -1;
}
答案 3 :(得分:0)
你需要这个
if(FindPersonName(userInput ) == -1){
}
但还有一件事int FindPersonName(String person)
将始终返回-1
您应该以这种方式更改FindPersonName(String person)
int FindPersonName(String person)
{
for (int i = 0 ; i < totalPersonCount ; i++)
{
if (person[i].getName().equals(person))
{
System.out.println(person[i].getName());
return 1;// return something positive if person found
}
}
System.out.println(person + " does not exist in person list.");
return -1;
}