Re: Generiky

2006-06-22 Tema obsahu Martin Kuba

Moravec Jan wrote:


Dekuji za odpoved. Toho jsem se obaval, ze to nepujde. Myslite, abych udelal 
jeste verze metody specificke pro konkretni typy?

Napr:

public static K,V CacheServiceMBeanK,V createMBeanProxy( String objectName, 
ClassCacheServiceMBeanK,V interfaceClass )
  throws ServiceLocatorException

Problem je v to, ze toto ma stejny erasure jako ta puvodni metoda, takze to 
compiler neprelozi (vznikla by uplne identicka metoda). Jak spravne rikate, ty typy se 
kompilaci odmaznou...

No asi se smirim s tema castama, neni to sice moc elegantni, ale co se da delat.


Myslel jsem spis neco jako

public static K,V CacheServiceMBeanK,V createMBeanProxy( String 
objectName, Class? extends CacheServiceMBean c1, ClassK c2, ClassV 
c3 )


Makub
--
~~
Supercomputing Center Brno Martin Kuba
Institute of Computer Scienceemail: [EMAIL PROTECTED]
Masaryk University http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
--



smime.p7s
Description: S/MIME Cryptographic Signature


Re: Generiky

2006-06-21 Tema obsahu Martin Kuba

Hledate marne, takhle to nejde, pri behu uz neexistuje
informace o parametrizaci CacheServiceMBean, a tudiz
ta metoda createMBeanProxy() nemuze vedet, jak je
CacheServiceMBean parametrizovany.

Pokud muzete zmenit tu createMBeanProxy(), pridejte
ji argumenty pro specifikaci parametru.

Makub

Moravec Jan wrote:

Ahoj,
 
Uz mi z toho jde hlava kolem a nemohu nalezt spravnou syntaxy. Mam 
statickou metodu:
 
public static T T createMBeanProxy( String objectName, ClassT 
interfaceClass )
 
Pokud ji volam pro ziskani MBeanu jednoduchych (neparametrizovatelnych) 
typu, napriklad
 
BusinessRegisterServiceMBean busRegMBean = ServiceLocator.createMBeanProxy(

neco, BusinessRegisterServiceMBean.class );
 
neni problem. Pokud vsak ten interface (interfaceClass) je slozitejsiho 
typu, napriklad chci vratit instanci typu CacheServiceMBeanLong, 
ManagedLString, pak nemohu prijit na to, jakym zpusobem toho dosahnout, 
abych se vyhnul castovani. To jest:
 
Toto funguje, ale warning o castu CacheServiceMBean na 
CacheServiceMBeanLong, ManagedLString:
 
CacheServiceMBeanLong, ManagedLString cacheMBean = 
(CacheServiceMBeanLong, ManagedLString) ServiceLocator.createMBeanProxy(

config.get( neco, CacheServiceMBean.class );
 
Ja chci zapis bez castu, tj. neco jako:
 
CacheServiceMBeanLong, ManagedLString cacheMBean =  
ServiceLocator.createMBeanProxy(
config.get( neco, CacheServiceMBean*Long, 
ManagedLString.*class );
 
Coz mi kompilator nesezere (nelibi se mu ten zapis 
CacheServiceMBean*Long, ManagedLString.*class).
 
Diky za nakopnuti.

Honza



--
~~
Supercomputing Center Brno Martin Kuba
Institute of Computer Scienceemail: [EMAIL PROTECTED]
Masaryk University http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
--


smime.p7s
Description: S/MIME Cryptographic Signature


RE: Generiky

2006-06-21 Tema obsahu Moravec Jan
Dekuji za odpoved. Toho jsem se obaval, ze to nepujde. Myslite, abych udelal 
jeste verze metody specificke pro konkretni typy?

Napr:

public static K,V CacheServiceMBeanK,V createMBeanProxy( String objectName, 
ClassCacheServiceMBeanK,V interfaceClass )
  throws ServiceLocatorException

Problem je v to, ze toto ma stejny erasure jako ta puvodni metoda, takze to 
compiler neprelozi (vznikla by uplne identicka metoda). Jak spravne rikate, ty 
typy se kompilaci odmaznou...

No asi se smirim s tema castama, neni to sice moc elegantni, ale co se da delat.

H.



-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Martin Kuba
Sent: Wednesday, June 21, 2006 6:13 PM
To: Java
Subject: Re: Generiky


Hledate marne, takhle to nejde, pri behu uz neexistuje
informace o parametrizaci CacheServiceMBean, a tudiz
ta metoda createMBeanProxy() nemuze vedet, jak je
CacheServiceMBean parametrizovany.

Pokud muzete zmenit tu createMBeanProxy(), pridejte
ji argumenty pro specifikaci parametru.

Makub

Moravec Jan wrote:
 Ahoj,
  
 Uz mi z toho jde hlava kolem a nemohu nalezt spravnou syntaxy. Mam 
 statickou metodu:
  
 public static T T createMBeanProxy( String objectName, ClassT 
 interfaceClass )
  
 Pokud ji volam pro ziskani MBeanu jednoduchych (neparametrizovatelnych) 
 typu, napriklad
  
 BusinessRegisterServiceMBean busRegMBean = ServiceLocator.createMBeanProxy(
 neco, BusinessRegisterServiceMBean.class );
  
 neni problem. Pokud vsak ten interface (interfaceClass) je slozitejsiho 
 typu, napriklad chci vratit instanci typu CacheServiceMBeanLong, 
 ManagedLString, pak nemohu prijit na to, jakym zpusobem toho dosahnout, 
 abych se vyhnul castovani. To jest:
  
 Toto funguje, ale warning o castu CacheServiceMBean na 
 CacheServiceMBeanLong, ManagedLString:
  
 CacheServiceMBeanLong, ManagedLString cacheMBean = 
 (CacheServiceMBeanLong, ManagedLString) ServiceLocator.createMBeanProxy(
 config.get( neco, CacheServiceMBean.class );
  
 Ja chci zapis bez castu, tj. neco jako:
  
 CacheServiceMBeanLong, ManagedLString cacheMBean =  
 ServiceLocator.createMBeanProxy(
 config.get( neco, CacheServiceMBean*Long, 
 ManagedLString.*class );
  
 Coz mi kompilator nesezere (nelibi se mu ten zapis 
 CacheServiceMBean*Long, ManagedLString.*class).
  
 Diky za nakopnuti.
 Honza


-- 
~~
Supercomputing Center Brno Martin Kuba
Institute of Computer Scienceemail: [EMAIL PROTECTED]
Masaryk University http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
--