将LinkedList <type>转换为LinkedList <superType>(java)

Nin*_*off 1 java casting linked-list

我有一个Interface SenseFitSensor.类HardwareSensor实现它(未来的实现可以是例如DummySensor).

现在我有一个需要的方法LinkedList<SenseFitSensor>.

public ExerciseLearner(LinkedList<SenseFitSensor> sensorList){
Run Code Online (Sandbox Code Playgroud)

我无法用a来提供它LinkedList<HardwareSensor>,因为LinkedList无法转换为SensefitSensor.

工作是什么

LinkedList<SenseFitSensor> senseFitSensors = new LinkedList<SenseFitSensor>(hardwareSensors);
    learner = new ExerciseLearner(senseFitSensors);
Run Code Online (Sandbox Code Playgroud)

但每次都会创建一个新的链表.有没有更好的办法?

Ami*_*nde 5

你可以使用有界外卡

public ExerciseLearner(LinkedList<? extends SenseFitSensor> sensorList){
Run Code Online (Sandbox Code Playgroud)

参考