很抱歉要求它,但我在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 else queryToSelectshow 2,但如果我使用带有奖励的用户运行此设置queryToSelectshow 1,当我使用没有bunus的用户运行时,这仍然在queryToSelectshow 1中,并且需要是queryToSelectshow 2。
这是由"静电"引起的?功能?我试着没有静态,但是当我尝试这样做时,eclipse会向我显示很多错误消息!
感谢您的帮助和时间!
答案 0 :(得分: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