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