[Javalist] instanceof subtype probléma

coder at gmail.hu coder at gmail.hu
2013. Feb. 15., P, 17:44:23 CET


  

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 ?). 

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 [1]
>
http://lists.javaforum.hu/mailman/listinfo/javalist [2]

 


Links:
------
[1] mailto:Javalist at lists.javaforum.hu
[2]
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/52671240/attachment.html>


További információk a(z) Javalist levelezőlistáról