javaに関することなのですが......

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
tomato

javaに関することなのですが......

#1

投稿記事 by tomato » 18年前

はじめまして。ここはC言語の質問掲示板だということなのですが、規約を見た所C言語だけに限らないと書いてありましたのでここで質問させていただきます。
もしわかるかたがいらっしゃいましたら、答えていただけると非常に助かります。

プログラムは添付した物です。これは2つの端点を持つ線分を定義して、それらの線分に対して長さを求めたり、長さを縮めたり、線分に対して様々な操作を行うプログラムです。
今回は作成した線分を配列groupに格納していくという作業をやっています。
また、配列に格納可能かを調べるメソッドとしてequalsというものがあります。
ここでその格納可能な条件とは、その線分がすでに格納されているかいないかということです。
つまり配列の中にすでに格納されている線分であれば、格納しないということです。
また、配列から格納されている線分を削除するメソッドとしてdeleteというものもあります。
今回行き詰っているのは、クラスGroupedLineSegmentの中身についてです。
  r1.equals(r1);
r1.add();
r2.equals(r2);
r2.add();
の部分なのですが、これではr2.equals(r2);の部分がヌルポインターとなってしまうらしくエラーになってしまいます。
コンパイルはできるのですが、実行時に上手く動きません。
最初のequalsは普通に使えているのに、なぜ2度目に出てくるequalsはヌルポインターになってしまうのでしょうか?
また、
r1.equals(r1);
r2.equals(r2);
と2回連続で書いた場合はエラーになりませんでした。これはなぜでしょうか?
どうやらadd()が間に入るとエラーになってしまうようです。
なんでこのようになってしまうのか全くわかりません。
わかる方がいたら教えてください。よろしくお願いします。

“C言語何でも質問掲示板” へ戻る