[Javalist] instanceof subtype probléma
Peter Verhas
peter at verhas.com
2013. Feb. 15., P, 19:04:32 CET
Igazad van, Bence, csak éppen azt mondta, hogy szeretné megfogni a tüzes vasat szabad kézzel, én meg javasoltam neki valami kenőcsöt utánára. De tényleg jobb, ha nem fogdosod. Valentin nap elmúlt.
--
Verhás Péter
peter at verhas.com
+36(30)9306805
skype: verhas
On 2013.02.15., at 17:44, coder at gmail.hu wrote:
> Hali!
>
>
> Én békénhagynám azt a ClassCastException -t, ugyanis - már amennyire nekem most ez lejön a kódból; pláne, így műszak végén :) - itt az a hunyó, aki Object mögé bújva nem megfelelő típusú példányt ad neked valahonnan (nem tudom, honnan jöhet az az Object kupac - nem lehet véletlenül ő is Collection<T> ?).
>
> Innen nézve egy picit concerning, hogy Object típust kell valamire használni.
>
> Ignore me if I've missed the point.
>
>
> Üdv.: Bence
>
>
> On Fri, 15 Feb 2013 09:57:32 +0100, Keresztes Jozsef wrote:
>
>> Sziasztok !
>>
>> A problémám a következő:
>> Van egy interface-em:
>>
>> public interface Predicate {
>> public boolean match(T candidate);
>> }
>>
>> És egy másik oszály query() metódusa pedig vár egy ilyen Predicate objektumot.
>>
>> public List query(Predicate predicate) {
>> for (Object object: objects) {
>> T t = (T)object; // itt nincs hiba
>> predicate.match(t); // itt ClassCastException jöhet
>> }
>> ...
>> }
>>
>> Ebben a másik osztályban van egy rakás Object, és szeretném meghívni a Predicate match() metódusát,
>> de csak azokkal az objektumokkal amelyek megfelelnek T-nek !
>> Persze rögtön az instanceof-ra gondolunk de azt nem lehet használni a subtype-ra.
>> Ráadásul a "T t = (T)object;" sem ad hibát még futásidőben sem pedig az objektum nem felel meg T-nek.
>> A futásidejű ClassCastException csak akkor jön ha a match() meghívódik.
>> Szóval hogy lehetne megvizsgálni hogy egy objektum megfelel-e T típusnak és már a match()-nek
>> át se adjam ?
>> A primítív megoldás az lehet hogy igenis minden objektumot átadok a match()-nek
>> és lekezelem egy try-blokkban a ClassCastException-t. Nincs jobb ?
>>
>> Joe
>>
>>
>>
>>
>> _______________________________________________
>> Javalist mailing list
>> Javalist at lists.javaforum.hu
>> http://lists.javaforum.hu/mailman/listinfo/javalist
>
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20130215/6ce690d9/attachment.html>
További információk a(z) Javalist levelezőlistáról