Вам нужно объявить hashMapColorAndPets
на уровне класса, вне каких-либо методов. В противном случае он не существует вне метода.
Если вы хотите, чтобы один hashMapColorAndPets
совместно использовался для всех PetFavoriteColor
экземпляров, вы должны сделать его статическим:
public class PetFavoriteColor {
// Gets created only once ever
private static final HashMap<Color, HashSet<Pet>> hashMapColorAndPets
= new HashMap<Color, HashSet<Pet>>();
// Can be accessed using PetFavoriteColor.getHashMap()
public static HashMap<Color, HashSet<Pet>> getHashMap() {
return hashMapColorAndPets;
}
}
Если вы хотите иметь отдельную хэш-карту для каждого экземпляра, сделайте это без статического:
public class PetFavoriteColor {
// Gets newly created with every PetFavoriteColor
private final HashMap<Color, HashSet<Pet>> hashMapColorAndPets
= new HashMap<Color, HashSet<Pet>>();
// Can be accessed like:
// PetFavoriteColor petFav = new PetFavoriteColor();
// petFav.getHashMap();
public HashMap<Color, HashSet<Pet>> getHashMap() {
return hashMapColorAndPets;
}
}
Метод main()
в PetFavoriteColor
будет запускаться только в качестве точки входа для программы, поэтому он ничего не делает - у вас уже есть точка входа в классе JavaFX
.