此问题与以下内容完全相同:
What does <> (angle brackets) mean in Java?
我正在阅读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));
}
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<>
中看过它们,但我不知道它们的目的是什么。
答案 0 :(得分:2)
它定义了generics。
的类型例如:
List<Integer> list;
您声明类List的变量。但如果我是对的话,List
就像这样宣布:
public interface List<T> extends Collection<T>
T是此类用户可以定义的类型的占位符。在我的例子中,我选择用整数填写T.在这种情况下,它意味着我将拥有一个整数列表。
答案 1 :(得分:0)
是http://docs.oracle.com/javase/tutorial/java/generics/generics.html
但基本上意味着你有一些像
这样的容器List<> aList
并且编译器需要知道它所持有的类型,因此您需要指定与容器相关联的类型
List<String> aList