if文内の二次元配列の設定方法について
if文内の二次元配列の設定方法について
区分の内容によって2つのクラスを呼び分けていたのですが、今回そのクラスを統合しようとしています。
そこで、2つのjavaソースを統合するにあたり、ソース内で使用している二次元配列の内容を区分によって書き換えたいのですが、
if文内に記述するため、その変数の有効範囲がif文内だけになってしまいます。
クラス全体でその配列を参照できるようにするにはどのように記述すればよいのでしょうか?
<統合前>
Test1.java
public class Test1 {
private static final String[][] LST = {{3,0,0},{0,0,1},{0,0,1}};
public void initialize() {
System.out.println(LST[0][0]);
}
⇒【実行結果】3
Test2.java
public class Test2 {
private static final String[][] LST = {{2,0,0},{0,0,1},{0,0,2},{0,0,3}};
public void initialize() {
System.out.println(LST[0][0]);
}
⇒【実行結果】2
上記2つのファイルを統合し、区分によって二次元配列の内容を設定する。
<統合案1>
Test1.java
public class Test2 {
private String[][] LST;
public void initialize() {
if (kubun == 1) {
String[][] LST = {{3,0,0},{0,0,1},{0,0,1}};
}else{
String[][] LST = {{2,0,0},{0,0,1},{0,0,2},{0,0,3}};
}
System.out.println(LST[0][0]);
}
⇒【実行結果】NullExceptionが発生してしまいます。
<統合案2>
public class Test2 {
private String[][] LST;
public void initialize() {
if (kubun == 1) {
LST = {{3,0,0},{0,0,1},{0,0,1}};
}else{
LST = {{2,0,0},{0,0,1},{0,0,2},{0,0,3}};
}
System.out.println(LST[0][0]);
}
⇒【実行結果】コンパイルエラーが発生してしまいます。(式の開始が不正です。)
※kubunが1のときと、それ以外のときで作成される二次元配列の要素数は異なります。
※kubunの内容によって、一度二次元配列の内容を設定してしまえば、あとは同じ内容のままです。
最初の変数の宣言の仕方、二次元配列の内容設定の仕方等、
どのようにすればよいかご教授よろしくお願い致します。
お礼
すみません、、 お恥ずかしい、、 ありがとうございました。