2012-04-24 26 views
0

這個問題的確切的重複:我在Android的閱讀AsyncTask
What does <> (angle brackets) mean in Java?Class <something>在Java中有什麼含義?

。我有這樣的例子代碼:

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<>等其他課程中看過他們,但我不知道他們的目的是什麼。

+1

@Aidanc - 懸停在downvote按鈕:*研究工作*。不僅僅是一本傻瓜書,任何有關Java的初學者書籍都會介紹它以及Oracle的基本教程。 – 2012-04-24 18:00:21

回答

2

它定義了generics的類型。


例如:

List<Integer> list; 

你聲明類目錄的變量。但List聲明這樣的,如果我是正確的:

public interface List<T> extends Collection<T> 

的T是一類,這個類的用戶可以定義的佔位符。在我的例子中,我選擇用Integer填充T。在這種情況下,這意味着我將有一個整數列表。

相關問題