异常表现
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxx.xxxxx/com.xxx.xxxx.activity.MainActivity}: java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2489)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2551)
at android.app.ActivityThread.access$1000(ActivityThread.java:169)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1432)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5581)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:968)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:763)
Caused by: java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
at java.util.ArrayList.get(ArrayList.java:308)
at com.xxx.xxxx.activity.MainActivity.initData(MainActivity.java:249)
at com.xxx.xxxxx.base.BaseActivity.onCreate(BaseActivity.java:47)
at android.app.Activity.performCreate(Activity.java:6034)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1111)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2442)
… 10 more
解决方案:
查看数组是否为空,进行非空判断
对orgList.size()进行判断是否为空,且大于0(见下面)
List<SysOrg> orgList=sysOrgService.getByUserId(su.getUserId());
String orgName="";
if (orgList!=null&&orgList.size()>0) {
orgName=orgList.get(0).getOrgName();
su.setOrgName(orgName);
list2.add(su);
}