Compiler-Fehler Inconvertible Types

Windisch

Neues Mitglied
Java:
import java.util.*;

public class Main {
    

    public static void main(String[] args) {
        Hashtable h = new Hashtable();
        for (int i=1;i<=100;i++) {
          h.put(i,"Person"+i);
        }
        Enumeration e=h.keys();
        while(e.hasMoreElements()) {
          int key=(int)e.nextElement();
            System.out.println(key+"---->"+h.get(key));
              
        }
    }
}

Ich habe bei int key=(int)e.nextElement(); einen Inconvertible Types fehler.
Wenn ich das ganze auf String ändere habe ich eine ClassCastException,
woran liegt der Fehler?
 
Java:
  int key=(Integer)e.nextElement();

oder direkt Generics benutzen, dann wäre der Cast nicht erforderlich 😉
(unter anderem Enumeration<Integer> e=h.keys(); )
 
nextElement() liefert ein Object != int

Benutze Generics:
Java:
Hashtable<Integer, String> h = new Hashtable<Integer, String>();
for (int i = 1; i <= 100; i++)
	h.put(i, "Person" + i);

Enumeration<Integer> e = h.keys();
while (e.hasMoreElements()) {
	int key = e.nextElement();
	System.out.println(key + "---->" + h.get(key));
}
 
danke für die antwort!

noch eine frage:
ich dachte enumeration gibt es in keiner sortierten reihenfolge aus?
oder ist das bei integer anders ?
 

Zurück
Oben