samedi 4 juillet 2015

Today I studied Iterator pattern, but I did not quite understand a pice of code. Could you help me with it?

Here is a class:

public class Repository implements Container{
public String [] names = {"John","Iren","Anthony","Lorn"};

    @Override
    public Iterator getIterator() {
        return new MyIterator();
    }
    private class MyIterator implements Iterator{
        int index;
        @Override
        public boolean hasNext() {
             if(index < names.length){
              return true;
             }
             return false;
        }

        @Override
        public Object next() {
           if(this.hasNext()){
            return names[index++];
           }
           return null;
        }
    }
}

And the main method:

public static void main(String[] args) {
        Repository name = new Repository();
        for(Iterator iter = name.getIterator();iter.hasNext(); ){
            String local = (String) iter.next();
            System.out.println("Name = " + local);
        }
    }

The question is about method next() :

        @Override
        public Object next() {
           if(this.hasNext()){
            return names[index++];
           }
           return null;
        }

I don`t understand the meaning of keyword in this context. This is reference for what?

Aucun commentaire:

Enregistrer un commentaire