[Javalist] miért kell final

Varjasi Norbert varjasin at sze.hu
2012. Sze. 11., K, 14:59:20 CEST


Szia!
A probléma a belső-külső osztályok szerkezetéből fakad.
A lokális osztály ugyan látja a definíciós pontjában a külső osztály 
elérhető változóit, ám törzsében csak olyan final változókra 
hivatkozhatunk,  amelyek már kaptak kezdőértéket.
Ezt a korlátozást azért vezették be, mert ezek az osztályok a lokális 
változókról másolatot készítenek és az osztályt tartalmazó blokkból való 
kilépés után is megőrzik értéküket, zárványok keletkeznének.
üdv:  VN.


2012-09-11 13:58 keltezéssel, Peter Verhas írta:
> A következő kis mintapéldában:
>
> public class WhyFinal {
> interface Outer {
> String method();
> }
>
> public Outer method(final String s) {
> class Inner implements Outer {
> public String method() {
> return s + " wonka";
> }
> }
> return new Inner();
> }
>
> public static void main(String[] args) {
> System.out.println(new WhyFinal().method("bonka").method());
> }
> }
>
> miért kell, hogy a 'String s' argumentum final legyen?
>
> --
> Verhás Péter
> peter at verhas.com <mailto:peter at verhas.com>
> +36(30)9306805
> skype: verhas
>
>
>
>
>
>
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist


-- 
Varjasi Norbert     varjasin at sze.hu


--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: <http://lists.javaforum.hu/pipermail/javalist/attachments/20120911/38f25da8/attachment.html>


További információk a(z) Javalist levelezőlistáról