04. maj 2009 - 10:46
Der er
3 kommentarer og 2 løsninger
Class og List<?>
Hi, +++ Object list1 = new ArrayList<String>(); Object list2 = new ArrayList<Integer>(); Class<?> listClass1 = list1.getClass(); String listClass1Name = listClass1.getCanonicalName(); +++ Jeg vil gerne finde ud af, om list1 er en ArrayList<String> eller ArrayList<Integer>. Mit mål er, at jeg gerne vil cast'e tilbage. if ( ArrayListType.equals( "java.lang.String" ) ) { List<String> l = (List<String>)list1; } else if ( ArrayListType.equals( "java.lang.Integer" ) ) { List<integer> l = (List<Integer>)list1; } med venlig hilsen KernelX
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
Generics i Java er en compile time thingy. Runtime er alt bare Object. Det hedder type erasure. Så i.s.f. list1.getClass() skal du bruge list1.get(0).getClass() ! Forudsætter at der er mindst et element i listen. Og så lyder det som om du er på vej ud i noget snavns !!
jeg giver arne ret - det ligner snavs :-) Prøv eventuelt at beskrive din problemstilling, der leder op til en så kringlet løsning, for der er garanteret en mere elegant løsning :-)
ok, i har vundet ... det er noget snavs :-) husk at skrive et eller andet som svar. hvis begge gi'r et svar, får begge 50 points. mange tak!
Kurser inden for grundlæggende programmering