このようなもの:
class C {
typeof(this) foo() { return this; }
}
Java 6 では不可能であることはわかっているので、Java 7 でそれができるかどうかを知りたいです。
編集
これは、メソッド呼び出しをチェーンするのに役立ち、次のように一時的なローカル変数を作成しないようにする必要があります。
class Entity {
typeof(this) refresh();
typeof(this) clone();
typeof(this) detach();
}
class FooEntity extends Entity {
@Override
typeof(this) detach() {
fooLink21.removeRef(this);
bar39.detach();
return this;
}
void doSomeInteresting() {}
}
fooEntity.clone().detach().doSomeInteresting();
などなど。
この関数をコンパイラに追加するのは非常に簡単だと思いますが、おそらくopenjdkまたはgcjにハックする必要がありますか?
ところで、openjdk の再構築に成功したことはありません。