我正在开发一个项目,在该项目中,它从.txt文件中读取书名并将它们放入arraylist,然后将arraylist转换为数组,用户输入一个数字作为书籍参考编号,然后它进行线性搜索以找到该书。我只是在使用线性搜索的代码时遇到一点麻烦,这就是我所拥有的:
private void FindItActionPerformed(java.awt.event.ActionEvent evt) {
String input;
int int1;
input = Input.getText();
int1 = Integer.parseInt(input);
for(int i=0; i<bookList.length; i++){
if (bookList[i].equals(int1)){
Output1.setText("The Book is " + bookList[i]);
}
}
}
它说不兼容类型的.equals(),不知道如何解决,感谢您提供的任何帮助
public class Book{
String referenceNumber, title;
public Book(String _referenceNumber, String _title){
referenceNumber = _referenceNumber;
title = _title;
}
}
ArrayList <Book> Books = new ArrayList <Book> ();
Book [] bookList;
这是Book类和数组
答案 0 :(得分:2)
bookList[i].referenceNumber.equals(input)
这应解决您的兼容性问题
侧面说明,使用getter和setter来更改成员是不公平的,让你的班级成员公开..
答案 1 :(得分:0)
更多细节:正如GoldRoger正确指出的那样,您需要访问书的referenceNumber。它表示类型不兼容,因为您是将苹果与胡萝卜进行比较,或者将数字与图书进行比较。通过以下方式访问本书的referenceNumber:
bookList[i].referenceNumber.equals(input)
是正确的方法。