gpt4 book ai didi

Java 第一次运行后不更新变量

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

很抱歉提出这个问题,但我对 Java 实在是菜鸟。当我们调用 showWindow...

public static String checkList;

public static String getCheckList(){
return checkList;
}

public static void setCheckList(String queryToSelect){
checkList = queryToSelect;
}

public static void showWindow(User user)
{
if (!checkConditions(user))
return;

String msg;
String queryToSelectshow;

if (user.getNetConnection().getBonus() > 0.)
{
msg = main(user);
queryToSelectshow = "SELECT * FROM prodlist WHERE canUse = 1 ORDER BY description ASC, id";
}
else
{
msg = main(user);
queryToSelectshow = "SELECT * FROM prodlist WHERE canUse = 2 ORDER BY description ASC, id";
}
setCheckList(queryToSelectshow);
showCommunity(user, msg);
}

如果用户有奖金,则queryToSelectshow 1,否则queryToSelectshow 2,但如果我与有奖金的用户一起运行此设置queryToSelectshow 1,当我与没有bunus的用户一起运行时,这仍在queryToSelectshow 1中并且需要queryToSelectshow 2。

这是由“静态”函数引起的吗?我尝试不使用静态,但是当我尝试这样做时, eclipse 向我显示了很多错误消息!

感谢您的帮助和您的时间!

最佳答案

嗯...有很多代码我们看不到,但我建议您在进入 if 之前记录“user.getNetConnection().getBonus()”中的值。或者,如果您没有任何日志系统,只需使用 System.out.println(user.getNetConnection().getBonus()) 显示它即可这样,您就可以确定您获得的值确实会大于 0。另外,如果您使用 IDE,请学习调试代码。快速搜索,例如 Eclipse: Debug Eclipse

另外...您真的需要所有这些方法都是静态的吗?我假设您正在这样做,因为如果没有,您将无法从 main 方法中调用它们。在这种情况下,您可以从同一类创建一个新对象:

MyObject object = new MyObject();

然后调用非静态方法:

object.nonStaticMethod();

我建议您尝试理解静态方法(以及变量!!!)意味着什么: Understanding Class Members

关于Java 第一次运行后不更新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31886522/

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