В коде есть метод convertMapToSet(Map<String, Cat> map) .
С него я хочу витянуть обьет Cat , но видает ошибку. - Cat r1 = entry.getValue() ;
Ну а если я буду обьявлять єтот обьект через родительский клас то ошибки не видает - Object r = entry.getValue() ;
Ну и потом я не могу обьет типа Object вставить в свой сет обьектов класа Cat .
Почему когда я вытаскиваю обьект с сета он не может остаться екземпляров класса Cat , а становится сразу екземпляром класса Object ?
package com.javarush.task.task09.task0927;
import java.util.Map;
import java.util.*;
/*
Десять котов
*/
public class Solution {
public static void main(String[] args) {
Map<String, Cat> map = createMap();
Set<Cat> set = convertMapToSet(map);
printCatSet(set);
}
public static Map<String, Cat> createMap() {
//напишите тут ваш код
Map<String, Cat> a = new HashMap<>();
a.put("Valera1",new Cat("Valera"));
return a;
}
public static Set<Cat> convertMapToSet(Map<String, Cat> map) {
//напишите тут ваш код
Set<Cat> a = new HashSet<>();
for (Map.Entry entry : map.entrySet()) {
// a.add(entry.getValue() );
Object r = entry.getValue() ;
Cat r1 = entry.getValue() ;
// System.out.println ( ""+ entry.getKey() );
// a.add(r);
a.add(new Cat("Valera3") );
}
return a ;
}
public static void printCatSet(Set<Cat> set) {
for (Cat cat : set) {
System.out.println(cat);
}
}
public static class Cat {
private String name;
public Cat(String name) {
this.name = name;
}
public String toString() {
return "Cat " + this.name;
}
}
}