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
> --------------------------------------------------------------
> 

Odpovedet emailem