1

这个问题与以下内容完全相同:
<>(尖括号)在 Java 中是什么意思?

我正在阅读有关AsyncTaskAndroid 的信息。我有这个示例代码:

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));
         }
         return totalSize;
     }

     protected void onProgressUpdate(Integer... progress) {
         setProgressPercent(progress[0]);
     }

     protected void onPostExecute(Long result) {
         showDialog("Downloaded " + result + " bytes");
     }
 }

它应该被调用:

new DownloadFilesTask().execute(url1, url2, url3);

我不明白什么<URL, Integer, Long>意思。我在其他一些课程中见过他们,String<>但我不知道他们的目的是什么。

4

2 回答 2

2

它定义了泛型的类型。


例如:

List<Integer> list;

你声明了一个 List 类的变量。但是List如果我是对的,它是这样声明的:

public interface List<T> extends Collection<T>

T 是此类用户可以定义的类型的占位符。在我的示例中,我选择用整数填充 T。在这种情况下,这意味着我将拥有一个整数列表。

于 2012-04-24T17:58:23.967 回答
0

它是http://docs.oracle.com/javase/tutorial/java/generics/generics.html

但基本上意味着你有一些容器

List<> aList

并且编译器需要知道它持有什么类型,以便您指定与容器关联的类型

List<String> aList
于 2012-04-24T18:03:02.790 回答