很抱歉要这个,但是我真的对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。
这是由“静态”功能引起的吗?我尝试不使用“静态”,但是当我尝试使用“静态”时,日食向我显示了许多错误消息!
感谢您的帮助和宝贵时间!
最佳答案
好吧...我们看不到很多代码,但是我建议您在进入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