java - Java 中的 Class<something> 是什么意思?

标签 java

This question is an exact duplicate of:
What does <> (angle brackets) mean in Java?

我正在阅读有关 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>方法。我在其他一些类(class)中见过它们,例如 String<>但我不知道他们的目的是什么。

最佳答案

它定义了 generics 的类型.


例如:

List<Integer> list;

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

public interface List<T> extends Collection<T>

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

关于java - Java 中的 Class<something> 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10303368/

相关文章:

java - 不支持请求方法 POST || Spring 登录

java - JVM "Reboot"的一种方法

java - 如何使用 clojure.java.jdbc 从 postgresql 查询 JSON 数据类型?

java - 来自 servlet 的 RemoteApi 调用未在本地应用程序引擎应用程序中加载

java - 在 Java 中从 json 文件中删除 json 对象

java - 获取时区的TimeZoneID

java - 安卓 Firebase Firestore : Get data from deep in Firestore document

Java 全屏图像调整大小?

java - reduce 操作中并行流的同步问题

java - 在 Java 中处理 ClosedByInterruptException