问题描述
很抱歉要这个,但是我对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;当我与没有任何优惠的用户一起运行时,此选项仍在queryToSelectshow 1中,并且需要为queryToSelectshow 2。
这是由“静态”功能引起的吗? 我尝试不使用“静态”,但是当我尝试使用“静态”时,日食向我显示了许多错误消息!
多谢您的协助与宝贵时间!
1楼
好吧...我们看不到很多代码,但是我建议您在进入if之前先记录“ user.getNetConnection()。getBonus()”中的值。
或者,如果您没有任何日志系统,只需使用System.out.println(user.getNetConnection().getBonus())
显示,就可以从中确定所获取的值确实正在运行大于0。此外,如果您使用的是IDE,请学习调试代码。
快速搜索,例如 :
另外...您真的需要所有这些方法都是静态的吗? 我将假设您正在执行此操作,因为如果没有,则无法从main方法调用它们。 在这种情况下,您可以从同一类创建一个新对象:
MyObject object = new MyObject();
然后调用非静态方法:
object.nonStaticMethod();
我建议您尝试了解静态方法(对于变量也是!!)意味着什么: