[Javalist] instanceof subtype probléma

Keresztes Jozsef jkeresztes at vati.hu
2013. Feb. 15., P, 11:50:28 CET


Nézd, ha pl. otthon van időd nézhetsz TV-t, vagy kirándulhatsz, vagy ilyeneken törheted a fejed :)
Azért ugye mindenkinek van szabadideje valamikor.

-----Original Message-----
From: istvan.ketler at lhsystems.com [mailto:istvan.ketler at lhsystems.com] 
Sent: Friday, February 15, 2013 11:43 AM
To: javalist at lists.javaforum.hu
Subject: Re: [Javalist] instanceof subtype probléma

De jó Neked hogy ilyenekre jut időd, irigyellek... Annyira szívesen játszanék a JavaFX-szel, és helyette más sürgős melókkal kell foglalkoznom (bár az is érdekes, lightweight docking és plugin framework kell).

Docking framework - Jide Docking Framework jónak tűnik.

Plugin framework - nincs jó, Eclipse/Netbeans nem kell (túl nagy és nehézkes), a jpf már vagy hat éve döglött projekt és a plugin feloldással vannak vele problémáim, mást meg nem találtam.

Ha valakinek van ötlete, szívesen fogadok minden segítséget, mit nézzek meg és mit ne.

Üdv,

Iván

______________________________
István Ketler
Senior Consultant

Lufthansa Systems Hungária Kft.
Development Center Pest
Neumann János u. 1/e
1117 Budapest
Hungary
Phone: +36 1 887-2815
Fax: +36 1 887-0577
Mobile: +36 30 600-4936
E-mail: istvan.ketler at LHsystems.com
www.LHsystems.com


-----Original Message-----
From: javalist-bounces at lists.javaforum.hu [mailto:javalist-bounces at lists.javaforum.hu] On Behalf Of Keresztes Jozsef
Sent: Friday, February 15, 2013 11:38 AM
To: Java lista
Subject: Re: [Javalist] instanceof subtype probléma

István !

Ez inkább egy hobby-projekt, itt nem kell a problémán azonnal túllendülni és haladni tovább. 
Inkább lehet elmélkedni rajta...

Joe

-----Original Message-----
From: istvan.ketler at lhsystems.com [mailto:istvan.ketler at lhsystems.com] 
Sent: Friday, February 15, 2013 11:34 AM
To: javalist at lists.javaforum.hu
Subject: Re: [Javalist] instanceof subtype probléma

Hát, lehet hogy akkor érdemesebb így leimplementálni és majd ha kész méréseket végezni (ha hetente/havonta egyszer és akkor is éjszaka fut az adott kód, nem lehet nagy baj a performance-szal), és ha szólnak majd a lassúság miatt akkor foglalkozni vele (pl. odaadni a class-t, mert ha erre egyébként módod van akkor miért ne). Ugye az "idő előtti optimalizálás" során máris eltöltöttél a problémával értékes perceket vagy órákat, amit így megtakaríthattál volna. :)

Üdv

Iván


______________________________
István Ketler
Senior Consultant

Lufthansa Systems Hungária Kft.
Development Center Pest
Neumann János u. 1/e
1117 Budapest
Hungary
Phone: +36 1 887-2815
Fax: +36 1 887-0577
Mobile: +36 30 600-4936
E-mail: istvan.ketler at LHsystems.com
www.LHsystems.com


-----Original Message-----
From: javalist-bounces at lists.javaforum.hu [mailto:javalist-bounces at lists.javaforum.hu] On Behalf Of Keresztes Jozsef
Sent: Friday, February 15, 2013 11:29 AM
To: Java lista
Subject: Re: [Javalist] instanceof subtype probléma

Szia

Igen a performance volt amire elsőre gondoltam, talán egy instanceof-hoz hasonló vizsgálat olcsóbb mint ami egy Exception keletkezésekor megtörténik.

Joe

-----Original Message-----
From: istvan.ketler at lhsystems.com [mailto:istvan.ketler at lhsystems.com] 
Sent: Friday, February 15, 2013 11:17 AM
To: javalist at lists.javaforum.hu
Subject: Re: [Javalist] instanceof subtype probléma

Szia,

nem értem, miért nem opció hogy elfogod a ClassCastException-t és feldolgozod?
Hiszen ha előtte ellenőrzöl, akkor is csak nagyjából az történik, hogy észreveszed hogy nem jó. Max performace spórolás hogy nem generál stacktrace-t?

Az nem igaz, hogy minden információ ott van már. Ugye a T már nincs futásidőben, viszont esetleg a Predicate<T> interfésznek lehet egy 

boolean isInstance(Object obj);

vagy

boolean isAcceptableForMatch(Object obj);

metódusa, amely megmondhatja hogy tud-e majd castolni. Persze ez függ attól hogy miként akartad implementálni, de nekem úgy tűnik hogy nem tudod megúszni azt hogy valahogy odaadd a class-t.

Esetleg próbálkozhatsz a Class getGenericInterfaces és hasonló metódusaival, meg a Type, ParametrizedType interfészekkel, de ilyet soha nem csináltam, nem tudom mit lehet és mit nem. Igazából azt sem tudom mire jók, mert mintha a T-t adná vissza, nem pedig a tényleges futásidejű class-t, a T-vel pedig asszem nem sokra megy az ember. Majd egyszer ha lesz időm rá eljátszom vele.

Üdv

Iván

______________________________
István Ketler
Senior Consultant

Lufthansa Systems Hungária Kft.
Development Center Pest
Neumann János u. 1/e
1117 Budapest
Hungary
Phone: +36 1 887-2815
Fax: +36 1 887-0577
Mobile: +36 30 600-4936
E-mail: istvan.ketler at LHsystems.com
www.LHsystems.com

-----Original Message-----
From: javalist-bounces at lists.javaforum.hu [mailto:javalist-bounces at lists.javaforum.hu] On Behalf Of Keresztes Jozsef
Sent: Friday, February 15, 2013 9:58 AM
To: javalist at lists.javaforum.hu
Subject: [Javalist] instanceof subtype probléma

Sziasztok !

A problémám a következő: 
Van egy interface-em:

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

És egy másik oszály query() metódusa pedig vár egy ilyen Predicate objektumot.

public <T> List<T> query(Predicate<T> 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


_______________________________________________
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


_______________________________________________
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




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