[英]java generics - convert List<object> to List<T>
我有一个类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?
}
PS我对Java很陌生,总是与.net一起使用,所以不要判断:)
我认为您在示例中误解了<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>();
关于如何在Java中使用泛型的很多很好的教程,可能是从Oracle教程开始的。
似乎您不了解泛型。 在通用类定义中,T代表Type参数,因此您可以发送cat,dog任意内容,只要它在您的类示例中扩展Comparable即可。 据我了解,这是fromItemList的实现:
List<Object> fromItemList(List<T> list){
}
因为有了Type,所以不需要toItemList方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.