ある日のJavaのお話。
メソッドAは、非同期のパラメータ入力メソッド(モードレスダイアログのようなもの)で、引数として渡したリスナークラスに、入力された値を渡します。
リスナークラスは引数を二つ持っており、メソッドAを呼び出した時の引数によって、両方か、どちらか片方に、メソッド内で入力した値が入る。
さて、そんなことでそのメソッドAを使っていたときのこと。なぜかメソッド内で何を入力しても、値が無視されるという問題がおこる。二時間近くなやんでやっと、メソッドAに渡したリスナークラスが、その呼出しかたでは何も入力されないほうの引数を参照していたというミスに気付く。
あーぁ、わたしはなにをやってるんだと。惨めでたまりません。何年もプログラミングやっといて、いまだにこんなミスをおかすとは。
しかし、C#ならこんな時、未代入の値をnullにするとか、ミスを気付かせる手段があるものの、Javaではどうすればいいのやら。負け惜しみ――ですが、いい方法はないものでしょうか。