[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 10161] Re: 動的実行メソ ッド決定はなぜされないのか



福嶋です。

デシリアライズされたStringについてはすみません、知りません。
#ちょっと試せばいいだけかもしれませんが…。

On Thu, 30 May 2002 04:25:45 +0900, according to the article
"[jfriends-ml 10160] Re: 動的実行メソッド決定はなぜされないのか"
Kazuya Maebashi <PXU00211@xxxxxxxxxxx> wrote:

> >(2)のパターンでも、MyClass#equals(MyClass)メソッドを呼んで欲しいと思うの
> >は、私だけでしょうか…?
> >それとも、今のような仕様になっている理由があるのでしょうか?
> 
> 引数の型によって実行するメソッドを動的に決定して欲しい、というのは
> 理解できないではないんですが、
> 
> ・普通のメソッドオーバライドより実装がかなり大変。

そうなんですか…。

> ・引数がプリミティブ型の場合や、そもそも引数の数が違う場合、
>  どのみち静的に決定することになるのでは?

確かに、この時は静的になるでしょうか。
でも、動的にクラスローディングした場合を考えるとやはりコンパイル時には
判定できませんね。プリミティブ型なら大丈夫でしょうか。

> ・引数がオブジェクトでも、複数の引数がある場合、曖昧さを
>  解決する規則は今でも結構ややこしい。それを実行時にやるの?

すみません。この辺のややこしさはぜんぜん知らないでの発言でした。

> ・メソッドをオーバライドした場合、(Javaではだめだが)引数を
>  広げることはできてよいはず。そういう規則を入れるとき、
>  衝突を起こしそう。

引数を広げるとはどういうことでしょう?
Cのprintfみたいに引数がいくつでも取れる、みたいなことですか?
だとすると、それをJavaに持ち込むのはJavaプログラムの複雑さが
増えるばかりであまりいいことがないような気がします。
(そういう場合は、Object[]やCollectionやIteratorを引数に取ればよいのでは)

----------------------------------------
(株)PFU ソフトプロダクト事業部第二開発部
  福嶋 航  w.fukushima@xxxxxxxxxxxxxxx