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]