Tuesday 14 February 2006

Javaの間違いやすいところ



なんか、しばらくJava初心者に付き合っているんですが...

static method から、instance method を呼び出そうとして怒られる。static method って名前が悪いよ。いわゆる class method なんだよね。より根源的な問題は、command で呼ばれるのが static main() だってこと。instance の存在しない call ってのが存在することが、こういう問題を必然的なものにしている。で、全部をstatic 宣言するようなことをしそうになる。そういうことはやめろ〜

instance 変数で、Socket sock とか宣言して、更に method 内部で Socket sock と宣言してしまい、他のmethodで socket.getInputStream() とかやって、null pointer exception を食らう。まぁ、「まったく理解してません」っていうエラーではあるんだが、method で、instance 変数を隠したら、エラー出しても良いんじゃないかな。というか、syntax 的に一時変数とinstance変数を区別して欲しい。

char と byte の区別。まぁねぇ。気持はわかるんだけどさ。その分、Library call の種類が増えてしまっている。この当たりを、Library 設計から理解するには時間がかかりそう。

Eclispe は、確かに良くできていて、このあたりのエラーを見つけるのは得意なんだけど、どっちかって言うと言語そのものに問題があるんじゃないかなぁ。特に余計なmethodを勝手に定義する機構は初心者には悪影響がある気がする。

(M2でこういう状態じゃ、修士は出せないよ...)

No comments: