我正在尝试查看 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();
它行不通。向下铸造是危险的,但据我所知,它并没有被禁止。
有什么建议吗?