在Java第4版中思考 – 什么是classname.this.method()
发布时间:2020-12-15 04:42:47 所属栏目:Java 来源:网络整理
导读:阅读“Thinking in Java 4th Edition”我在第14章中找到了这个例子: public class CoffeeGeneratorimplements GeneratorCoffee,IterableCoffee { private Class[] types = { Latte.class,Mocha.class,Cappuccino.class,Americano.class,Breve.class,}; priv
阅读“Thinking in
Java 4th Edition”我在第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(); } } 我注意到我从未遇到过这种结构: return CoffeeGenerator.this.next(); 这是什么意思?我知道ClassName.class.Method(),但这是什么意思? 解决方法
CoffeeGenerator.this允许从内部类CoffeeIterator访问外部类CoffeeGenerator
JLS 15.8.4将此描述为合格的
阅读:Inner classes (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容