public class Roster extends ArrayList<Student>
{
public boolean containsStudent(String ln)
{
Scanner user_input = new Scanner (System.in);
System.out.println("Enter last name of student: ");
String lName = user_input.next();
for (Student student : this)
{
if (student.getLastName().equals(lName))
return true;
}
return false;
}
如何修复下一个方法中的错误:
public Student retrieveByld(int id)
{
Scanner user_input = new Scanner (System.in);
System.out.println("Enter the ID of the student: ");
String idNum = user_input.next();
for (Student student : this)
{
if (student.getID().equals(idNum))
return student.getFullName();
}
return " ";
}
错误:int 无法取消引用。我猜我无法使用 .equals 方法与整数进行比较,但是如何在不改变语法太多的情况下进行比较。
给定 ID,我必须让程序在列表中找到该学生并返回该学生的全名。如果没有找到学生,我必须返回 null。如果有帮助的话,这是我的学生类(class)。
public class Student
{
private String lName, fName;
private int idNum;
public Student(int id, String fn, String ln)
{
lName = ln;
fName = fn;
idNum = id;
}
public String getFullName()
{
return fName + " " + lName;
}
public String getLastName()
{
return lName;
}
public String getFirstName()
{
return fName;
}
public int getID()
{
return idNum;
}
public String toString()
{
return fName + " " + lName + " " + idNum;
}
}
最佳答案
int
没有 equals()
方法来查看它们是否相等,它们使用 ==
运算符,因为它是原始类型。您要更改的是 if (student.getID().equals(idNum))
行,它应该是: if (student.getID() == idNum)
。
关于java - 公共(public)学生retrieveById(int id),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15192705/