[英]Cast LinkedList<type> to LinkedList <superType> (java)
I've got an Interface SenseFitSensor. 我有一个接口SenseFitSensor。 Class HardwareSensor implements it (future implements could be eg DummySensor).
类HardwareSensor实现它(将来的实现可能是DummySensor)。
Now I've got a method which requires LinkedList<SenseFitSensor>
. 现在,我有了一个需要
LinkedList<SenseFitSensor>
。
public ExerciseLearner(LinkedList<SenseFitSensor> sensorList){
I cannot provvide it with a LinkedList<HardwareSensor>
, because LinkedList cannot be cast to SensefitSensor
. 我无法提供
LinkedList<HardwareSensor>
,因为LinkedList无法转换为SensefitSensor
。
What does work is 起作用的是
LinkedList<SenseFitSensor> senseFitSensors = new LinkedList<SenseFitSensor>(hardwareSensors);
learner = new ExerciseLearner(senseFitSensors);
But a new linkedlist is created each time. 但是每次都会创建一个新的链表。 Is there a better way?
有没有更好的办法?
You can use bounded wild cards 您可以使用有界通配符
public ExerciseLearner(LinkedList<? extends SenseFitSensor> sensorList){
References 参考文献
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.