Closed. This question needs to be more focused。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。
                        
                        6年前关闭。
                    
                
        

我是Java的新手,我已经搜索了Internet。但是我做对了
这是我对下一个代码的疑问:

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



<TTask, TList>是什么意思?
Class<? extends AbstractAsyncTask<TTask>>是什么意思?


感谢您的任何网站或障碍或榜样。

最佳答案

您可以在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

10-02 09:37