<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html><body>
<p>Hali!</p>
<p> </p>
<p>É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> ?).</p>
<p>Innen nézve egy picit concerning, hogy Object típust kell valamire használni.</p>
<p>Ignore me if I've missed the point.</p>
<p> </p>
<p>Üdv.: Bence</p>
<p> </p>
<p>On Fri, 15 Feb 2013 09:57:32 +0100, Keresztes Jozsef wrote:</p>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px; width:100%"><!-- html ignored --><!-- head ignored --><!-- meta ignored -->
<pre>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
<a href="mailto:Javalist@lists.javaforum.hu">Javalist@lists.javaforum.hu</a>
<a href="http://lists.javaforum.hu/mailman/listinfo/javalist">http://lists.javaforum.hu/mailman/listinfo/javalist</a>
</pre>
</blockquote>
<div> </div>
</body></html>