太久没用Java这么隐蔽的语法结构了。刚才翻Java语言规范的时候看到[url=http://java.sun.com/docs/books/jls/third_edition/html/syntax.html#18.1]new关键字居然可以跟在Primary的后面[/url],再一查,看到[url=http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.9]规范的15.9[/url],才发现是用来生成内部类的实例的。像这样:
想想觉得以前似乎是学过这语法……但肯定不是上课教的,而且肯定没怎么用过,不然怎么会忘得一干二净的 = =
public class Outer {
private String value;
public Outer(String value) {
this.value = value;
}
public class Inner {
public void printString() {
System.out.println(Outer.this.value);
}
}
public static void main(String[] args) {
Outer o = new Outer("hello");
Outer.Inner i = o.new Inner(); // instantiate inner class
i.printString();
}
}
想想觉得以前似乎是学过这语法……但肯定不是上课教的,而且肯定没怎么用过,不然怎么会忘得一干二净的 = =