Think in Java version 4 – what is classname this. method()
•
Java
Reading "thinking in Java 4th Edition", I found this example in Chapter 14:
public class CoffeeGenerator
implements Generator<Coffee>,Iterable<Coffee> {
private Class[] types = { Latte.class,Mocha.class,Cappuccino.class,Americano.class,Breve.class,};
private static Random rand = new Random(47);
public CoffeeGenerator() {}
private int size = 0;
public CoffeeGenerator(int sz) { size = sz; }
public Coffee next() {
try {
return (Coffee)
types[rand.nextInt(types.length)].newInstance();
} catch(Exception e) {
throw new RuntimeException(e);
}
}
class CoffeeIterator implements Iterator<Coffee> {
int count = size;
public boolean hasNext() { return count > 0; }
public Coffee next() {
count--;
return CoffeeGenerator.this.next();
}
public void remove() {
throw new UnsupportedOperationException();
}
};
public Iterator<Coffee> iterator() {
return new CoffeeIterator();
}
}
I noticed that I had never encountered such a structure:
return CoffeeGenerator.this.next();
What's the meaning of this? I know classname class. Method (), but what does that mean?
Solution
CoffeeGenerator. This allows access to the external class coffeeegenerator from the internal class coffeeeiterator
JLS 15.8. 4 describe this as qualified
Reading: inner classes
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码
