Kann man mit generics hinkriegen dass in eine ArrayList nur entweder Klasse1 oder Klasse2 reinkommen ohne dass man sie von der selben Oberklasse erben lässt?
Generics sind ja eigentlich da, um solche Typeunsicherheiten zur compile-Zeit zu verhindern. Drum gar nicht. (mit erben meinst du implements und extends nehme ich an)
hmm, nein, da fällt mir spontan nichts ein. Vor allem fällt mir nicht ein, wozu du so etwas machen möchtest, was willst du denn später mit solchen inkompatiblen durcheinandergemischten objekten machen? ???:L
ich hab keinen USE-Case mich hat jemand gefragt ob sowas geht und ich hab gesagt denk mal nicht, aber war mir nicht 100 pro sicher, deshalb die Frage ... Des war nur ne rein technische Frage
achso, du hast es also nur weitergeleitet... verständlich. der prof des bruders des tutors meines kumpels hat die Frage auch nicht direkt beantworten können^^
nö wollt nur sicher gehen...
Kann doch sein dass man 2 Klassen die nichts miteinander zu tun haben da reinpacken kann...
Die 2 Überlegungen waren:
1. Dass der Compiler schon meckern kann eh falsches Objekt ist nicht der Typ von einer von denen beiden...und dass nicht erst zur laufzeit festgestellt wird...
2.unf die getMethode liefert ein object und dann brauch man nur ein if und ein else zum überprüfen welches objekt vorhanden ist...
so brauch man halt ein else mehr, darum war einfach die frage ob sowas geht
2) geht doch, du kannst auch ArrayList<Object> anlegen und dann per instanceof den typ abfragen. Verboten ist es nicht, aber unschön und unnötig.
Und die Frage fand ich auch nicht sinnfrei, ich mach mich hier nur über die tatsache lustig, dass du eine Frage weitergeleitet hast. Da ist eigentlich auch nicht viel lustiges dabei, aber sonst sehe ich grad keine threads wo ich spontan irgendwas hinschreiben könnte, was da nicht schon stünde, deswegen joke ich hier in den abgehackten threads herum
>1. Dass der Compiler schon meckern kann eh falsches Objekt ist nicht der Typ von einer von denen beiden...und dass nicht erst zur laufzeit festgestellt wird...
Genau das ist das Ziel der Generics. Zur compile Zeit testen ob es auch das in die Liste kommt was angegeben ist ( <hier> ), Wenn nicht dann meckert der Compiler. Pre 1.5 war es so, dass man gecastet hat und irgend ein Schllaumer was falsches in die Liste gehauen hat und eine ClassCastException flog (zur Laufzeit) . Nun doch lieber eine zur Compile Zeit in der IDE als beim Kunden zur Lauf zeit.
>2.unf die getMethode liefert ein object und dann brauch man nur ein if und ein else zum überprüfen welches objekt vorhanden ist...
so brauch man halt ein else mehr, darum war einfach die frage ob sowas geht
Die km langen if ( instanceof ) Konstrukte. die vermisse ich richtig ;-)
omg, vor lauter zensur verstehe ich überhaupt nichts mehr :lol: . Irgendwas ist besch#%$§n , das hab ich schon verstanden, aber was wolltest du da sagen?? ???:L
Die km langen if ( instanceof ) Konstrukte. die vermisse ich richtig ;-)