Java SE 7の言語仕様の変化で一番大きいのはローカルキーワード

言語仕様の追加で一番の足かせになっていたのは、キーワードを追加できないということでした。
だからpropertyやgetとsetなんかのものすごくわかりやすいキーワードが、いろんなところで変数名・メソッド名としてすでに使われているから使えないってことだったんです。
getがキーワードになったらList#getが使えなくなってしまいます。
ところが、ローカルキーワードとして、特定の文脈でだけ使えるキーワードを許すようにすると話は違います。変数名・メソッド名・クラス名といった識別子が構文上出てこないようにしておけば、かなり好きなようにキーワードを定義できます。
【レポート】Java SE 7の「プロパティ」が見えてきた | マイコミジャーナル


Java 2 SE 5.0のときにローカルキーワードを導入してれば、拡張forも例えばこんな感じでJavaScript風にできたんですよね。

for (String s in list){
  System.out.println(s);
}