java - 公共(public)学生retrieveById(int id)

标签 java

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/

相关文章:

java - 如何理解和使用spring fusion与eclipse IDE?

java - 将 GUI 渲染为内存中的图像

java - 如何从 JPA 中的实体管理器获取旧实体?

java - 使用具有透明图像的 Graphics.copyArea

javascript - 使用 JxBrowser 监听页面变化

java - 这段代码在java中是什么意思,他使用的是设计模式吗

javascript - 如何使用 AngularJS 返回 HTML 页面

java - 安卓自定义通知为空

java - HTML 5 文件上传使用 java servlet 访问被拒绝异常

java - 无法找到请求目标的有效证书路径 -> CAS 登录后