объекты не эквивалентны,хотя все поля одинаковые на выводе, что для ivanov, что для hum. Что не так, подскажите плз
package com.javarush.task.task20.task2001;
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/*
Читаем и пишем в файл: Human
C:\Users\OOS 4\Desktop\abd.txt
*/
public class Solution {
public static void main(String[] args) {
//исправьте outputStream/inputStream в соответствии с путем к вашему реальному файлу
try {
//File your_file_name = File.createTempFile("your_file_name", null);
OutputStream outputStream = new FileOutputStream("C:\\Users\\OOS 4\\Desktop\\abd.txt");
InputStream inputStream = new FileInputStream("C:\\Users\\OOS 4\\Desktop\\abd.txt");
Human ivanov = new Human("Ivanov", new Asset("home", 999_999.99), new Asset("car", 2999.99));
ivanov.save(outputStream);
outputStream.flush();
/* System.out.println(ivanov.name);
for (Asset a:ivanov.assets) {
System.out.println(a.getName()+" "+a.getPrice());
}*/
Human somePerson = new Human();
somePerson.load(inputStream);
inputStream.close();
System.out.println(ivanov.equals(somePerson));
//check here that ivanov equals to somePerson - проверьте тут, что ivanov и somePerson равны
} catch (IOException e) {
//e.printStackTrace();
System.out.println("Oops, something wrong with my file");
} catch (Exception e) {
//e.printStackTrace();
System.out.println("Oops, something wrong with save/load method");
}
}
public static class Human {
public String name;
public List<Asset> assets = new ArrayList<>();
public Human() {
}
public Human(String name, Asset... assets) {
this.name = name;
if (assets != null) {
this.assets.addAll(Arrays.asList(assets));
}
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Human human = (Human) o;
if (name != null ? !name.equals(human.name) : human.name != null) return false;
return assets != null ? assets.equals(human.assets) : human.assets == null;
}
@Override
public int hashCode() {
int result = name != null ? name.hashCode() : 0;
result = 31 * result + (assets != null ? assets.hashCode() : 0);
return result;
}
public void save(OutputStream outputStream) throws Exception {
//implement this method - реализуйте этот метод
PrintWriter writer=new PrintWriter(outputStream);
String assetSiza=assets.isEmpty()?"no":"yes";
writer.write(assetSiza);
writer.write( System.lineSeparator());
writer.write(name);
writer.write( System.lineSeparator());
if(assetSiza.equals("yes")) {
for(Asset e:assets){
writer.write(e.getName());
writer.write( System.lineSeparator());
writer.write((Double.toString(e.getPrice())));
writer.write( System.lineSeparator());
}
}
writer.flush();
}
public void load(InputStream inputStream) throws Exception {
//implement this method - реализуйте этот метод
BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream));
String assetSiza = reader.readLine();
//System.out.println(assetSiza);
name = reader.readLine();
//System.out.println(name);
Asset ass=null;
Human hum=new Human();
hum.name=name;
while (reader.ready()) {
if (assetSiza.equals("yes")) {
//for (int i=0;i<assets.size();i++) {
ass = new Asset(reader.readLine(), Double.parseDouble(reader.readLine()));
hum.assets.add(ass);
//System.out.println(ass.getName() + " " + ass.getPrice());
//}
}
}
/*System.out.println(hum.name);
for (Asset a:hum.assets) {
System.out.println(a.getName()+" "+a.getPrice());
}*/
reader.close();
}
}
}