java泛型 - 将List <object>转换为List <T>

dro*_*ter 0 java generics

我上课了 MySpecialClass <T extends Comparable<T>>

我想做以下事情:

toItemList()- >应该List<Dog>将其转换List<T>MySpecialClass可以对其进行操作.

fromItemList()- >应该占用内存List<T>并将其转换为对象列表.因此,如果我有List,它应该将其转换为List<Dog>,所以我可以在所有操作完成后获得后向转换.

我如何在Java中构建类似的东西?我的MySpecialClass作品List<T>就是为什么我需要它.

public List<T> toItemList(List<dogs> list or List<cats> list){
// how to convert?      

    }



public List<dog> or List<cat>  fromItemList(){
      //local _inMemoryList (which is List<T>) convert to List<dog> or List<cat> depending on what MySpecialClass T is   
 // how to convert?     

        }
Run Code Online (Sandbox Code Playgroud)

PS我是java的新手,总是和.net一起工作所以不要判断:)

Rig*_*ggy 5

我认为你错误地理解<T>你的例子中正在做什么.T是实现Comparable的任何其他类的占位符.

让我们快速了解一下这是如何工作的,使用MySpecialClass上面的定义.

public class Dog implements Comparable<Dog> {

}

public class Cat {

}
// This works because Dog implements Comparable
MySpecialClass<Dog> x = new MySpecialClass<Dog>();

// This will not because Cat does not implement Comparable
MySpecialClass<Cat> x = new MySpecialClass<Cat>();
Run Code Online (Sandbox Code Playgroud)

有很多关于如何在Java中使用泛型的好教程,可能从Oracle教程开始.