java中用点_JAVA中类型后面跟三个点的使用问题

首先来讲一下java  三个点的知识吧,

可变数组参数。用...的话,传参数时可传可不传,传的话,可以是一个个并列地传,也可以直接是一个数组。 在方法里取时,s是一个数组,如果调用时什么都没有传,那么s的长度就是0。传的时候传了几个,s的长度就是几。 还有,1.5以上才支持这个功能。 写的例子:

public class ThreePoint {

public static void main(String[] args) {

printString();

System.out.println("==========");

printString(new String[] { "我", "和", "你" });

System.out.println("==========");

printString("我", "和", "你");

}

public static void printString(String... str) {

if (str.length == 0) {

System.out.println("没有传参数。");

}

for (int i = 0; i < str.length; i++) {

System.out.println(str[i]);

}

System.out.println("---------------------");

for (String s : str) {

System.out.println(s);

}

}

}

今天,MTBF遇到了一个关于数组越界的问题

04-25 23:01:31.417925 23613 23671 E AndroidRuntime: Caused by: java.lang.ArrayIndexOutOfBoundsException: length=1; index=8

04-25 23:01:31.417925 23613 23671 E AndroidRuntime: at java.util.concurrent.CopyOnWriteArrayList.remove(CopyOnWriteArrayList.java:344)

04-25 23:01:31.417925 23613 23671 E AndroidRuntime: at com.android.mms.model.SlideshowModel.remove(SlideshowModel.java:774)

04-25 23:01:31.417925 23613 23671 E AndroidRuntime: at com.android.mms.ui.SlideshowEditor.removeSlide(SlideshowEditor.java:134)

04-25 23:01:31.417925 23613 23671 E AndroidRuntime: at com.android.mms.data.WorkingMessage.setAttachment(WorkingMessage.java:1021)

04-25 23:01:31.417925 23613 23671 E AndroidRuntime: at com.android.mms.ui.ComposeMessageActivity.addImage(ComposeMessageActivity.java:6918)

04-25 23:01:31.417925 23613 23671 E AndroidRuntime: at com.android.mms.ui.ComposeMessageActivity.-wrap31(ComposeMessageActivity.java)

04-25 23:01:31.417925 23613 23671 E AndroidRuntime: at com.android.mms.ui.ComposeMessageActivity$65.run(ComposeMessageActivity.java:6881)

04-25 23:01:31.417925 23613 23671 E AndroidRuntime: at com.android.mms.ui.AsyncDialog$ModalDialogAsyncTask.doInBackground(AsyncDialog.java:161)

04-25 23:01:31.417925 23613 23671 E AndroidRuntime: at com.android.mms.ui.AsyncDialog$ModalDialogAsyncTask.doInBackground(AsyncDialog.java:157)

04-25 23:01:31.417925 23613 23671 E AndroidRuntime: at android.os.AsyncTask$2.call(AsyncTask.java:295)

04-25 23:01:31.417925 23613 23671 E AndroidRuntime: at java.util.concurrent.FutureTask.run(FutureTask.java:237)

这个问题的涉及到java代码如中:

@Override

protected Void doInBackground(Runnable... params) {

if (params != null) {

try {

for (int i = 0; i < params.length; i++) {

params[i].run();

}

} finally {

mHandler.removeCallbacks(mShowProgressDialogRunnable);

}

}

return null;

}应该实在异步线程里出现了数组越界的问题:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值