Это мой метод для проверки, если первые три элемента является одинаковымвсегда возвращают ложь, если сравнить существующую строку из тестового файла в недавно Входящий объект с параметром
carModel является строкой
PurchasePrice является двойной
purchaseDate является дата
Я сохранил их в текстовый файл, разделяя запятой и пробелом, как «»
Однако этот метод всегда возвращает false, даже если я вводил только одну и ту же запись. Но когда я изменил первый «& &» на «||», он вернет true.
public static boolean exist(Car c) {
String line = "";
File file = new File("Car Records.txt");
try {
BufferedReader fr = new BufferedReader(new FileReader(file));
while ((line = fr.readLine()) != null) {
String[] s = line.split(", ");
if ((s[0].equals(c.carModel)) &&(s[1].equals(c.purchasePrice))&& (s[2].equals(c.purchaseDate))
&& (s[5].equals(false))){
return true;
}
}
fr.close();
} catch (IOException e) {
System.out.println("Error reading file");
}
return false;
}
's [5]. equals (false) '-' String' никогда не будет равным 'boolean'. – Marvin
Возможно, тип данных ваших переменных не является строкой, то есть c.purchasePrice и c.purchaseDate? – Mikkel
Отлаживайте свой код, пожалуйста. – f1sh