Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-dev] final ITD field



While I know that a final ITD is not actually final and understand why
(couldn't be initialized from outside target class) I am puzzled that an
instance field cannot be set within an ITD constructor. Is this just a
current compiler limitation or is there some more fundamental restriction.
In the following example I can set in a constructor a final field defined
in HelloWorld but not an ITD field within an ITD constructor

public class HelloWorld {

      public static int i1;

      public HelloWorld () {
            i1 = 9;
      }

      public void println () {
            System.out.println("Hello World!");
      }

      public static void main(String[] args) {
            new HelloWorld().println();
      }
}

public aspect ITDModifiersTest {

      public final int HelloWorld.i2;

      public HelloWorld.new (int i) {
            i2 = i; // ERROR
      }

}

Matthew Webster
AOSD Project
Java Technology Centre, MP146
IBM Hursley Park, Winchester,  SO21 2JN, England
Telephone: +44 196 2816139 (external) 246139 (internal)
Email: Matthew Webster/UK/IBM @ IBMGB, matthew_webster@xxxxxxxxxx
http://w3.hursley.ibm.com/~websterm/



Back to the top