Ono se to moc nedela, ale obecne mi prijde jako rozumna praktika
deklarovat vsechno implicitne jako final, pokud neni konkretni duvod k
opaku.

Pavel

On 31/01/2008, Filip Jirsák <[EMAIL PROTECTED]> wrote:
> Zdravím,
> udělejte přesně to, co máte v té hlášce – deklarujte ty proměnné jako konečné.
>
>  protected Object formBackingObject(HttpServletRequest request) throws
>  Exception {
>          final AA aa= new AA();
>          List<BB> bbs = LazyList.decorate(new ArrayList(),
> …
>
>  public Object create()
>  final BB bb = new BB();
> …
>
> Bez toho kompilátor nemůže vědět,. že  jméno aa nebo bb nemůže
> odkazovat na několik různých objektů, ale od inicializace odkazuje jen
> na jeden. Tudíž by pak nevědělo, kterou hodnotu má použít ve vnitřní
> třídě (jejíž kód může být spuštěn kdo ví kdy a v úplně jiném vlákně).
>
> Filip Jirsák
>
> 2008/1/31, Ivan Polák <[EMAIL PROTECTED]>:
> > zdravim konferenciu,
> >
> > mam takyto problem, neviete niekto poradit ako zmenit uvedeny zdrojak:
> >
> > protected Object formBackingObject(HttpServletRequest request) throws
> > Exception {
> >
> >         AA aa= new AA();
> >
> >         List<BB> bbs = LazyList.decorate(new ArrayList(),
> >                                                                 new
> > org.apache.commons.collections.Factory() {
> >
> > public Object create()
> >                                                                     {
> >
> > BB bb = new BB();
> >
> >
> > bb.setAA(aa);
> >
> > uvedeney zdrojak "produkuje" nalsedovnu chybu:
> >
> > local variable aa is accessed from within inner class; needs to be
> > declared final
> >
> > a
> >
> > local variable bb is accessed from within inner class; needs to be
> > declared final
> >
> > dakujem
> >
> > Ivan
> >
>
>
> --
> Filip Jirsák
> [EMAIL PROTECTED]
>

Odpovedet emailem