<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html><body>
<p>Hali!</p>
<p>&nbsp;</p>
<p>&Eacute;n b&eacute;k&eacute;nhagyn&aacute;m azt a ClassCastException -t, ugyanis - m&aacute;r amennyire nekem most ez lej&ouml;n a k&oacute;db&oacute;l; pl&aacute;ne, &iacute;gy műszak v&eacute;g&eacute;n :) - itt az a huny&oacute;, aki Object m&ouml;g&eacute; b&uacute;jva nem megfelelő t&iacute;pus&uacute; p&eacute;ld&aacute;nyt ad neked valahonnan (nem tudom, honnan j&ouml;het az az Object kupac - nem lehet v&eacute;letlen&uuml;l ő is Collection&lt;T&gt; ?).</p>
<p>Innen n&eacute;zve egy picit concerning, hogy Object t&iacute;pust kell valamire haszn&aacute;lni.</p>
<p>Ignore me if I've missed the point.</p>
<p>&nbsp;</p>
<p>&Uuml;dv.: Bence</p>
<p>&nbsp;</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&eacute;m&aacute;m a k&ouml;vetkező: 
Van egy interface-em:

public interface Predicate {
  public boolean match(T candidate);
}

&Eacute;s egy m&aacute;sik osz&aacute;ly query() met&oacute;dusa pedig v&aacute;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&ouml;het
  }
  ...
}

Ebben a m&aacute;sik oszt&aacute;lyban van egy rak&aacute;s Object, &eacute;s szeretn&eacute;m megh&iacute;vni a Predicate match() met&oacute;dus&aacute;t,
de csak azokkal az objektumokkal amelyek megfelelnek T-nek !
Persze r&ouml;gt&ouml;n az instanceof-ra gondolunk de azt nem lehet haszn&aacute;lni a subtype-ra.
R&aacute;ad&aacute;sul a "T t = (T)object;" sem ad hib&aacute;t m&eacute;g fut&aacute;sidőben sem pedig az objektum nem felel meg T-nek.
A fut&aacute;sidejű  ClassCastException csak akkor j&ouml;n ha a match() megh&iacute;v&oacute;dik.
Sz&oacute;val hogy lehetne megvizsg&aacute;lni hogy egy objektum megfelel-e T t&iacute;pusnak &eacute;s m&aacute;r a match()-nek
&aacute;t se adjam ? 
A prim&iacute;t&iacute;v megold&aacute;s az lehet hogy igenis minden objektumot &aacute;tadok a match()-nek
&eacute;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>&nbsp;</div>
</body></html>