Я пытаюсь понять, станет ли HashSet решением для моего следующего проекта, поэтому я провожу очень простой тест для проверки функциональности. У меня есть простой класс Klant
:
public class Klant {
private int klantNummer;
public Klant(int nummer) {
this.klantNummer = nummer;
}
public int getKlantNummer() {
return this.klantNummer;
}
}
а класс со сквозной композицией использует HashSet
public class MySet<Klant> {
private Collection<Klant> mySet = null;
public MySet() {
mySet=new HashSet<Klant>();
}
public void add(Klant elem) {
mySet.add(elem);
}
public void toon() {
Iterator<Klant> i = mySet.iterator();
while(i.hasNext()) {
Klant k = i.next();
System.out.println(k.);
}
}
}
Проблема заключается в методе toon()
В основном, хотя я указываю, что итератор будет содержать объекты Klant <Klant>
Локальный объект k
не предоставляет мне метод getKlantNummer()
, определенный в Klant
Объект k
все еще является экземпляром Object
, и даже путем приведения его к :
Object k = (Klant)i.next();
это не сработает. Даункастинг опасен, но, насколько я помню, не запрещен.
Любой совет?
for( Klant k : mySet )
- person trutheality   schedule 04.06.2011