这在java <task,list =“”>?</task,>中意味着什么?

时间:2013-02-13 02:38:15

标签: java

我是Java的新手,我已经在互联网上搜索过了。但我无法做到正确 以下是关于下一个代码的问题:

protected <TTask, TList> void get(
        final List<TList> list,
        final Class<? extends AbstractAsyncTask<TTask>> asyncTaskClass,
        final Class<TList> myTypeClass,
        final Object... constructorParams)
  1. <TTask, TList>是什么意思?
  2. Class<? extends AbstractAsyncTask<TTask>>是什么意思?
  3. 感谢您的任何网站或阻碍或示例。

1 个答案:

答案 0 :(得分:2)

您可以在the generics tutorial中找到有关您问题的所有信息。 但要给你至少“某事”

protected <TTask, TList> void get(
            final List<TList> list,
            final Class<? extends AbstractAsyncTask<TTask>> asyncTaskClass,
            final Class<TList> myTypeClass,
            final Object... constructorParams)

Generic Method

1)TTaskTList被称为Type Variables。它们就像包含您传递的任何类型(StringIntegerAnyUserDefinedClass)的变量。如果你通过

List<String> list

作为get方法的第一个参数,方法中TList的所有出现都将替换为String

2)Class<? extends AbstractAsyncTask<TTask>>特别是<? extends AbstractAsyncTask<TTask>>部分意味着AbstractAsyncTask<TTask>的任何子类(或任何扩展AbstractAsyncTask<TTask>的子类)都可以放在这里,其中TTask是再一次,一个包含你传递的任何类型的变量。

进一步阅读:Covariance and Contravariance in java