-PR-
解決
済み

キャストの仕方?

  • すぐに回答を!
  • 質問No.23271
  • 閲覧数51
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 24% (13/53)

class Rots{
double thetaX, thetaY, thetaZ;
}

public class DemoData{

public static Rots[] rots = new Rots[16];

public DemoData(){
}

void changeTheta(int i, double dx, double dy){
System.out.println("i, dx in dd= " +i+dx);
rots[i].thetaX = dx; <---
rots[i].thetaY = dy; <---
}
}

というプログラムがあります。他のファイルで
DemoData dd = new DemoData();
if(j<=16 && j>=0) dd.changeTheta(j, thetax, thetay);
とすると(j, thetax, thetay には具体的な数値が入って
います。) <--- の部分でエラーが出てしまいます。
どうしてでしょうか? お分かりの方、教えてください。
お願いします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル6

ベストアンサー率 30% (4/13)

DemoData.rots[] はちゃんと初期化してますか?
これだけだと配列を作っているだけで、配列の中身が初期化されてないように見えます。

for(int i=0; i<17; i++){ rots[i] = new Rots[x,y,z]; }

のような操作がどこかでなされているか確認してみてはどうでしょうか。
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル2

ベストアンサー率 0% (0/1)

配列の中身が生成されていないようです。 コンストラクタで public DemoData(){ for(int i=0; i<rots.length; i++) { rots[i] = new Rots(); } } こんな感じにすると、NullPointerExceptionは、でなくなります。 ...続きを読む
配列の中身が生成されていないようです。
コンストラクタで

public DemoData(){
for(int i=0; i<rots.length; i++) {
rots[i] = new Rots();
}
}

こんな感じにすると、NullPointerExceptionは、でなくなります。
お礼コメント
shootingfish

お礼率 24% (13/53)

vmlinuzさん、EXPRESSさん
どうもありがとうございました。
おかげでエラーが消えました。

初歩的なことがわかってなくて、苦労してます。
本当にありがとうございました。
投稿日時 - 2000-12-30 16:15:05
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ