2017-07-18 11 views
-1

Javaアプリケーションで作業していますが、タイトルにエラーが表示され続けています。私のコードIRここでスレッド「AWT-EventQueue-0」で例外が発生するjava.lang.ArrayIndexOutOfBoundsException:2

public static Object[] DataProcessinglcld(String in, String par){ 
    Object[] ret = new Object[2]; 
    if (in.contains("string" + par)){ 
     ret[0] = par; 
     ret[1] = 0; 
     return ret; 
    } 
    else{ 
     ret[0] = in; 
     ret[1] = 1; 
     return ret; 
    } 
} 

...

Object[] xlib = DataProcessinglcld(in[bit], "xlib.v"); // error line 
    //System.arraycopy(DataProcessinglcld(in[bit], "xlib.v"), 0, xlib, 0, 2); 
    bit++; 
    ret[4] = xlib[0]; 
    ret[5] = xlib[1]; 
    if ((int) xlib[1] == 1) { 

     return FillWithZ(6,ret); 
    } 

私は私の知る限り理解したエラーは、アレイの間違ったインデックスをアクセスもしようとしているに関連していることを理解しますが、私は同じサイズに別のものに長さ2の配列を割り当てようとしています。 DataProcessinglcld([bit]、 "xlib.v")の結果を、問題の行の下にあるコメントの関数を使用して配列にコピーするだけで、同じエラーが発生することに注意してください。

+0

'[ビット]で' 'でbit'は何ですか? – khelwood

答えて

0

ここでは、 'ret [x]'をグローバル配列として宣言していない限り、メソッド内で宣言されているため、位置4と5にアクセスします。

ret[4] = xlib[0]; 
ret[5] = xlib[1]; 

はとにかくあなたが2つのオブジェクトとそれを宣言:

Object[] ret = new Object[2]; 
関連する問題