gpt4 book ai didi

java - 设置方法的状态

转载 作者:行者123 更新时间:2023-12-02 07:22:51 25 4
gpt4 key购买 nike

在我的 GUI 中我有

@Override
public void actionPerformed(ActionEvent ae) {
state = new JComboBox(EnumStates.values());
state =(JComboBox)ae.getSource()
state.getSelectedItem() //this returns what I want

然后我有一些其他类的对象,就像使用 EnumStates

CallmeClass obj;

当我尝试使用 JComboBox 的结果设置枚举的状态时,如下所示

  obj.setState(state.getSelectedItem());

我得到编译错误

<强>1。需要状态但找到对象

所以我的问题是有没有办法让setState作为参数state.getSelectedItem()而不改变方法setState()的返回类型或在gui中重新声明枚举。谢谢。

最佳答案

我猜你的 setState 声明是这样的:

public void setState(State state){
...
}

问题是 JComboBox 是无类型的(至少在 Java7 之前是这样)。因此,getSelectedItem() 始终返回一个需要转换为您的类型的对象。因此,您可以在获得元素时进行转换:

obj.setState((State)state.getSelectedItem());

或者您可以将方法声明更改为 object 并在那里进行转换:

public void setState(Object state){
if(state instanceof State){
State realState = (State)state;
...
}
}

关于java - 设置方法的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13978925/

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