Názor k článku Novinky v JDK 7 aneb mírný pokrok v mezích zákona – projekt Lambda od Mips - Myslím, že důvod je ten, že při překladu...

  • Článek je starý, nové názory již nelze přidávat.
  • 2. 12. 2010 21:51

    Mips (neregistrovaný)

    Myslím, že důvod je ten, že při překladu té anonymní třídy se z ní udělá obyčejná vnitřní třída a hodnota proměnné y se do ní promítne jako konstanta (atribut s modifikátorem final). Nic jiného než konstanta to ani být nemůže, protože proměnná y vnější třídy je mimo dosah (scope) – kód definovaný ve vnitřní třídě by za běhu neměl jak zjistit její hodnotu. Z toho pramení požadavek na neměnnost proměnné y.

    K atributům vnější třídy má AnonClass přístup, takže tam požadavek na neměnnost hodnoty není.