JavaScriptの文字列処理でundefinedが入り込む

JavaScriptは、C言語などとは異なり、変数を宣言するだけでは、思うように動作しない場合があります。

var str;
str = str + '123';
alert(str);

のようなコードを動作させると、ダイアログボックスには「undefined123」と表示されます。一見、きちんと変数を宣言しているように見えますし、ダイアログボックスの内容も変数str自体が存在しないかのような「undefined123」となっています。以下のように初期値を与えればundefinedは発生しません。

var str = '';
str = str + '123';
alert(str);

ダイアログボックスが「null123」なら、初期値の問題だと想像しやすいのですが、この場合は「undefined」となっています。

JavaのJComboBoxへの項目の追加方法

Javaにおいても、バージョンが上がっていくうちに、いつの間にかこれまで問題なくコンパイルできたコードに問題が発生することがあります。JavaのコンボボックスであるJComboBoxを作成するだけでも、意外に以下のような「注意」が表示されることがあります。

注意:入力ファイルの操作のうち、未チェックまたは安全ではないものがあります。
注意:詳細は、-Xlint:uncheckedオプションを指定して再コンパイルしてください。

このようなことが起こらないようなJComboBoxオブジェクトの作り方を何種類かご紹介します。

変数をオブジェクトより先に作る。項目を後で入れる。

private JComboBox<String> jcombox;
jcombox = new JComboBox<>();
jcombox.addItem("a");
jcombox.addItem("b");

文字列でも、文字列の配列でも、記述方法は同じです。

String[] its = {"a", "b"};
private JComboBox<String> jcombox;
jcombox = new JComboBox<>();
jcombox.addItem(its);

変数をオブジェクトと同時に作る。項目を後で入れる。

private JComboBox<String> jcombox = new JComboBox<>();
jcombox.addItem("a");
jcombox.addItem("b");

変数をオブジェクトと同時に作る。項目も同時に入れる。

String[] its = {"a", "b"};
private JComboBox<String> jcombox = new JComboBox<String>(its);