gpt4 book ai didi

java - Java 中的泛型类型使用

转载 作者:太空宇宙 更新时间:2023-11-04 06:16:01 24 4
gpt4 key购买 nike

我认为通用使用有问题,一些代码:

public class ObservableValue<T> extends Observable {
private T value;

public ObservableValue(T initial) {
setValue(initial);
}

public void setValue(T newValue) {
if (value != newValue) {
this.value = newValue;
setChanged();
notifyObservers(value);
}
}
}
<小时/>
public class SokobanGame implements Game, Observer {

protected final ArrayList<GameStatusBarElement<Integer>> windowElements;

public void nextLevel(Integer currentLevel){
this.windowElements.get(0).getElement().setValue(currentLevel);

for(GameStatusBarElement<Integer> element : windowElements)
element.update();
}
}
<小时/>
public class GameStatusBarElement<T> {
protected final ObservableValue<T> element;

public GameStatusBarElement(String elementText,
ObservableValue<T> observableValue) {
this.element = observableValue;
}
}

在主要实现中:

GameStatusBarElement<Integer> level = new GameStatusBarElement<Integer>("Level:", new ObservableValue<Integer>(1));

GameWindow gameWindow = new GameWindow("",
null, null, level);
}

所以,问题是:我无法使用setValue(currentLevel) (在 SokobanGame 中)因为 currentLevel输入,Eclipse 告诉我用 T 放一些东西类型...但我实例化了 this.windowElements.get(0).getElement() 类与 new GameStatusBarElement<Integer>("Level:", new ObservableValue<Integer>(1)); ,所以我不明白问题出在哪里?

最佳答案

一切看起来都很好,但我没有看到您的 getElement() 方法的实现。

如果您的 getElement() 方法如下所示:

public ObservableValue<T> getElement() {
return element;
}

它应该可以正常编译。

关于java - Java 中的泛型类型使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28085942/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com