第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何解決此 ArrayIndexOutOfBoundsException 在一臺計算機(jī)上工作?

如何解決此 ArrayIndexOutOfBoundsException 在一臺計算機(jī)上工作?

牧羊人nacy 2022-08-17 15:56:10
所以我不知道如何去做這個。我使用Eclipse作為我的IDE,并通過它導(dǎo)出一個可運行的jar。以前一切都工作正常,除了現(xiàn)在我有一個ComboBox并用數(shù)組(FX.收藏品)。我在Windows 7計算機(jī)上運行它,在那里我進(jìn)行開發(fā),然后我將其移動到我的Windows 10計算機(jī)上,在那里我進(jìn)行測試以確保一切正常,但在這種情況下不是這樣。OutOfBoundsException通常很容易處理,但我不知道如何處理此異常,因為它在一臺計算機(jī)上工作(沒有運行時異常),而在另一臺計算機(jī)中則有此異常:Exception in Application start methodjava.lang.reflect.InvocationTargetExceptionat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)Caused by: java.lang.RuntimeException: Exception in Application start methodat com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$159(LauncherImpl.java:182)at java.lang.Thread.run(Unknown Source)我嘗試了4種不同的Java版本(1.8.0_181,_192,_201,_202)。我嘗試在代碼的不同部分更改從excel文件中讀取的雙精度類型。我已嘗試將 ArrayList 的類型從 、 和 。我已經(jīng)更改了加載代碼的位置。它總是去這部分:certNumbersFound.get(certNumbersFound.size()-1)我一直認(rèn)為這沒關(guān)系,但什么是更好的方法呢?還是我只是運氣不好?我還在 main 的 launch(args) 方法之前對 ArrayList 進(jìn)行了 System.out.println-ed,并在放入 ArrayList 的 get 方法之前將 certNumbersFound.size()-1 放入它自己的對象中。
查看完整描述

2 回答

?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗 獲得超7個贊

我檢查了如果文件不存在,將使用適當(dāng)?shù)哪0鍎?chuàng)建一個新文件作為冗余。但!這并不意味著模板中有任何值來加載 ArrayList。


它在我的Windows 7計算機(jī)(開發(fā)計算機(jī))上運行的唯一原因是因為它有一個測試文件,模板中已經(jīng)有數(shù)字,所以它從來沒有像我的Windows 10(測試計算機(jī))那樣從頭開始運行。


我必須添加一個方法或if語句說:


if(certNumbersFound != null && certNumbersFound.size() > 0)

{

  //Write code that can use the ArrayList certNumbersFound

  //because there's values in the file

}

else

{

  //Write code that doesn't use the ArrayList certNumbersFound

  //because there's no values in the file.

}

我覺得自己太笨了。謝謝大家。我很抱歉浪費你的時間。


查看完整回答
反對 回復(fù) 2022-08-17
?
狐的傳說

TA貢獻(xiàn)1804條經(jīng)驗 獲得超3個贊

ArrayList.get如果索引超出范圍,則拋出。在您的情況下,可能小于零。IndexOutOfBoundsException


要避免這種情況,請在代碼中添加檢查:


ArrayList<Integer> certNumbersFound = workbook.getCertNumbers();

if (certNumbersFound.size() >= 1) {

    int lastNumber = certNumbersFound.get(certNumbersFound.size()-1);

    //more code

}

else {

    //handle situation according to your needs

    //e.g. throw exception, log something or write to err: 

    System.err.println("Invalid size: " + certNumbersFound.size());

}

從外部源(在本例中為 Excel 文件)讀取數(shù)據(jù)時,引入安全檢查始終是一個好主意。


一個更好的主意是將異常處理(或:預(yù)期意外處理代碼)放在其中,這是您讀?。赡懿豢煽康模┩獠吭吹姆椒?。在此上下文中,外部源意味著:不受 Java 編譯器控制。getCertNumbers


查看完整回答
反對 回復(fù) 2022-08-17
  • 2 回答
  • 0 關(guān)注
  • 212 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號