简体   繁体   English

演员表LinkedList <type> 到LinkedList <superType> (java)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM