User Tools

Site Tools


basics:ex7

This is an old revision of the document!


The Basics: Exercise 7

From the aspect Basics, declare that the class Application implements the interface Iterable<String>.

Employ the form declare parents: Type implements Type.

This will raise a compiler error since Application does not provide an implementation for the iterator() method prescribed by the interface. We will also provide an implementation for this method from the aspect.

First, declare a public field name of type String for the Application class, with the default value “MyApplication”.

The inter-type declaration of members (fields or methods) has the same syntax as the ordinary declarations of members, but the method or field name must be prefixed by name of the receiving class and a dot (.).

Next, add a method iterator() with return type Iterator<String>. This method will return an iterator over the values of the two fields of the Application class. To construct this iterator, you can employ the following snippet inside the method body:

java.util.Arrays.asList(name, "go: " + go).iterator();

The declaration of this method should resolve the previous compiler error. To test the new code, add a new class ApplicationTest with the following implementation:

public class ApplicationTest {
  public static void main(String[] arg) {
    Application t = new Application();
    t.name = "YourApplication";
    for(String s: t)
      System.out.println(s);
  }
}

Start this new main method, right-click on the class ApplicationTest and select Run AsJava/AspectJ Application.


Continue with the Invariants track.

basics/ex7.1172419411.txt.gz · Last modified: 2007/02/25 17:03 by bdefrain