akasaka_34の日記

ネトウヨと呼ばれた男の日記。しかし頻度から言えば週報ぐらい。

ダウンキャストしたら負けだと思う

Javaの言語仕様についてふと思ったこと。

class Foo {
int n;
public boolean equals(Object o) {
if (o instanceof Foo) {
return n == ((Foo) o).n;
}
return false;
}
}
みたいなコードを
class Foo {
int n;
public boolean equals(Object o) {
if (Foo o) { // もし o が Foo のインスタンスなら
return n == o.n; // o を Foo として扱う
}
return false;
}
}
って書けたら素敵だなー。

ダウンキャストしたら負けだと思うんだよ。
いやまあ結局中身はダウンキャストなんだけど
安全だと断言できる状況ならあたかもダウンキャストではないように見えるほうが嬉しい。
ジェネリックスだって結局そういうことでしょ?