0

私は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>>意味ですか?

あなたのサイトまたは妨害または例をありがとう。

4

1 に答える 1

2

ジェネリックスチュートリアルで問題に関するすべてを見つけることができます。しかし、少なくとも「何か」を与えるために

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と呼ばれます。これらは、渡す任意の型(、、)を保持する変数のようなものです。合格した場合StringIntegerAnyUserDefinedClass

List<String> list

メソッドの最初の引数として、メソッド内getのすべての出現は次のTListように置き換えられますString

2)Class<? extends AbstractAsyncTask<TTask>>特にこの部分<? extends AbstractAsyncTask<TTask>> は、のサブクラスAbstractAsyncTask<TTask>(または拡張するものAbstractAsyncTask<TTask>)をここに配置できることを意味します。ここでも、TTask渡した任意の型を保持する変数です。

さらに読む:Javaの共変性と反変性

于 2013-02-13T03:20:42.080 に答える