Zajímavé, abstraktní metody musí fungovat... jak tu instanci Method získáváte?
getMethod() nebo getDeclaredMethod()? Důležité je, že se musí jednat o metodu z 
předka, nikoliv z potomka (interní třídy).

Kamil Podlešák

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Behalf Of Ing. Jan Novotný
> Sent: Monday, November 26, 2007 2:53 PM
> To: Java
> Subject: Re: IllegalAccessException pri pokusu prístupu na 
> getter Enumu
> reflexí
> 
> 
> Díky za nakopnutí, tohle se trefilo do černého - alespoň co se týká
> zdůvodnění. Když jsem v debug režimu manuálně nastavil metodě
> setAccessible(true), už invoke() prošlo bez chyby a vrátilo to, co
> mělo. Bohužel doplnění abstraktní metody do QueryStatus nepomohlo a
> bez setAccessible(true) se k danému getteru nedostanu - pro úplnost
> uvádím aktualizovanou třídu:
> 
> public enum QueryStatus implements HasValue {
>       INSERTED {
>               public Integer getValue() { return 0; }
>               public String getLabel() { return "vloženo"; }
>       },
>       ALLOWED {
>               public Integer getValue() { return 1; }
>               public String getLabel() { return "schváleno"; }
>       },
>       FORBIDDEN {
>               public Integer getValue() { return 2; }
>               public String getLabel() { return "zamítnuto"; }
>       };
> 
>       public abstract String getLabel();
> 
> }
> 
> Navíc jsem objevil, že Stripes mají tag <stripes:options-enumeration/>
> u kterého jsem si myslel, že bude natvrdo nastavováno setAccessible,
> ale není tomu tak - padá to na IllegalAccess také.
> 
> Zkusím ještě popátrat na gůglu.
> 
> Honza N.
> 
> 2007/11/26, Podlesak Kamil <[EMAIL PROTECTED]>:
> >
> > Myslim ze bude stacit doplnit deklaraci tech metod v 
> samotne tride QueryStatus (jako abstraktni metody).
> >
> > > public enum QueryStatus implements HasValue {
> > >       INSERTED {
> > >               public Integer getValue() { return 0; }
> > >               public String getLabel() { return "vloženo"; }
> > >       },
> > >       ALLOWED {
> > >               public Integer getValue() { return 1; }
> > >               public String getLabel() { return "schváleno"; }
> > >       },
> > >       FORBIDDEN {
> > >               public Integer getValue() { return 2; }
> > >               public String getLabel() { return "zamítnuto"; }
> > >       }
> >
> >                 public abstract Integer getValue();
> >                 public abstract String getLabel();
> > > }
> >
> > Jednotlive instance jsou neverejne tridy, tedy je normalne 
> nelze pouzivat a nelze ani volat metody v nich deklarovane. 
> Tato omezeni se za normalnich okolnosti kontroluji i pri 
> pouzivani reflection, ale kontrolu lze vypnout zavolanim 
> method.setAccessible(true). Nektere knihovny pouzivajicich 
> reflection toto delaji, coz vysvetluje proc se v nich tento 
> problem neobjevi (zatimco v jinych ano).
> >
> > Kamil Podlesak
> > --
> > [EMAIL PROTECTED]
> >
> >
> > > -----Original Message-----
> > > From: [EMAIL PROTECTED] 
[mailto:[EMAIL PROTECTED]
> > Behalf Of Ing. Jan Novotný
> > Sent: Monday, November 26, 2007 1:58 PM
> > To: Java
> > Subject: IllegalAccessException pri pokusu prístupu na getter Enumu
> > reflexí
> >
> >
> > Zdravím konferenci,
> >
> >    dokážete někdo vysvětlit proč při přístupu k metodám Java enum
> > typu, který mám definován takto:
> >
> > public enum QueryStatus implements HasValue {
> >       INSERTED {
> >               public Integer getValue() { return 0; }
> >               public String getLabel() { return "vloženo"; }
> >       },
> >       ALLOWED {
> >               public Integer getValue() { return 1; }
> >               public String getLabel() { return "schváleno"; }
> >       },
> >       FORBIDDEN {
> >               public Integer getValue() { return 2; }
> >               public String getLabel() { return "zamítnuto"; }
> >       }
> > }
> >
> >    vyhazuje java IllegalAccessException? Podaří se mi získat i object
> > Method pro danou getter metodu, ale když se zavolá metoda invoke,
> > vyletí vyjímka IllegalAccessException. Nějak se mi nepodařilo nic
> > vygůglit, tak si nedokážu vysvětlit, kde je problém.
> >
> > Honza N.
> >
> > --
> > --------------------------------------------------------------
> > Ing. Jan Novotný
> > @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> > http://blog.novoj.net
> > Myšlenky dne otce Fura
> > --------------------------------------------------------------
> >
>


-- 
--------------------------------------------------------------
Ing. Jan Novotný
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
http://blog.novoj.net
Myšlenky dne otce Fura
--------------------------------------------------------------

Odpovedet emailem