java – 功能参数中3点的含义是什么?
发布时间:2020-12-14 05:09:42 所属栏目:Java 来源:网络整理
导读:这个问题在这里已经有一个答案: Java,3 dots in parameters8 我正在阅读Android文档中的AsyncTask. private class DownloadFilesTask extends AsyncTaskURL,Integer,Long { protected Long doInBackground(URL... urls) { int count = urls.length; long to
这个问题在这里已经有一个答案:>
Java,3 dots in parameters8
我正在阅读Android文档中的AsyncTask. private class DownloadFilesTask extends AsyncTask<URL,Integer,Long> { protected Long doInBackground(URL... urls) { int count = urls.length; long totalSize = 0; for (int i = 0; i < count; i++) { totalSize += Downloader.downloadFile(urls[i]); publishProgress((int) ((i / (float) count) * 100)); // Escape early if cancel() is called if (isCancelled()) break; } return totalSize; } protected void onProgressUpdate(Integer... progress) { setProgressPercent(progress[0]); } protected void onPostExecute(Long result) { showDialog("Downloaded " + result + " bytes"); } } 问题是doInBackground(URL … urls)这3个点是什么? 解决方法
这不是Android功能.这是一个Java功能(添加在Java 5中),因此您可以使用“自定义”参数.
这种方法: protected Long doInBackground(URL... urls) { for (URL url : urls) { // Do something with url } } 和这个: protected Long doInBackground(URL[] urls) { for (URL url : urls) { // Do something with url } } 对于内部的方法是一样的. doInBackground(url1,url2,url3,url4); 但是对于第二个,你必须创建一个数组,所以如果你试图在一行中做到这一点就像: doInBackground(new URL[] { url1,url3 }); 好的是,如果您尝试使用这种方式调用使用varargs编写的方法,它将以与否(后向支持)相同的方式工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- java – JDBC之间的差异JDBC
- java – 在抽象类的构造函数中使用抽象的init()函
- JAVA中实例变量与类变量的区别,实例方法和类方法
- 如何使用Eclipse作为IDE使用Robot Framework和Ja
- java – 在Spring Expression Language中访问属性
- java – 使用’debugUnreturnedConnectionStackT
- java – 父pom.xml的包装无效,必须是“pom”,而是
- java – ToStringBuilder追加X appendSuper
- 多线程 – 如何在使用QThreadPool时执行QObject
- 最大化Java堆空间
热点阅读