new演算子が、インスタンスの参照を返さない!?
どうもこんにちは。
現在、iアプリ向けプログラムを作成しています。
しかし、あるクラスだけが、インスタンスを作成できない(?)
ようです。
他のクラスの記述と、見比べても差がほぼありません。
コンストラクタの中に、何も書かないようにしたりしてもダメでした。
サンプルコードは、これです。
// ---------------------------------------------------------- //
Window window = new Window( 10, 15+(15*6),
D.WIN_FLAG_NOCONTROL, 8, 8, 8 );
System.out.println( "エフェクト"+ new Effect() );
//つまり、コンストラクタから参照が得られないのが、問題
Effect effect = new Effect();
System.out.println("effect:"+effect);
// ---------------------------------------------------------- //
まとめると、Windowクラスのインスタンスは、作れるのに、
Effectクラスは、作れないという事です。
new Effect()のところで、NullPointerException例外が、発生してしまいます。
下記は、Effectクラスのコンストラクタです。
//コンストラクタ
Effect()
{
g = MainCanvas.g;
nKey = MainCanvas.nKey;
}
特に変わったところは、ありません。
コンストラクタ内の二行を消しても、同じ結果でした。
もしかして、KVMが、壊れたとかでしょうか?
ヒープの容量も十分にあったので、それが問題では無いと思いますが、
どうでしょうか?
見直すポイントがあれば、教えて下さい。
お願いします。
お礼
必ずオブジェクトは生成されてしまうんですか。 エラーが発生するオブジェクト生成の前にtry をはってエラーをcatchするのが定石なんですね。 なるほど~。 でもそれだとオブジェクト内で発行するエラーを知っておく必要があるますね。 んー。コンストラクタで失敗専用のエラー定義を作って統一することにします。 どうもありがとうございました。