我想在全局创建布尔数组,这里的代码我试图制作
public class BettingHandler extends BaseClientRequestHandler
{
public static int player[] = new int [100];
public static int i;
public static boolean playerAct[];
public void handleClientRequest(User user, ISFSObject params)
{
RouletteExtension gameExt = (RouletteExtension) getParentExtension();
if (BettingHandler.player[BettingHandler.i] != -1)
{
trace("player problem");
BettingHandler.player[BettingHandler.i] = user.getPlayerId();
BettingHandler.playerAct[BettingHandler.i] = true;
i++;
}
trace("If this showed, no error");
}
}
在Eclipse中没有显示redcross签到左边的代码
public static boolean playerAct[];
在这里
BettingHandler.playerAct[BettingHandler.i] = true;
我为SFS2X中的处理程序做了这个,所以我在SFS2X区域监视器中检查错误但不幸的是,这个脚本只运行到这个
trace("player problem");
删除此代码时
BettingHandler.playerAct[BettingHandler.i] = true;
脚本运行到此
trace("If this showed, no error");
所以我知道BettingHandler.playerAct[BettingHandler.i] = true;
有问题,我怎么能修复我的代码?
答案 0 :(得分:3)
您从未初始化阵列,但您正在尝试使用它。
public static boolean playerAct[] = new boolean[100];
答案 1 :(得分:1)
有趣的事情:
public static int player[] = new int [100];
public static int i;
public static boolean playerAct[];
第一个数组,你实际上为100个元素创建了一个数组。 您省略了第二个数组的步骤。你真的很惊讶第二个给你带来问题吗?
此外:您正在使用的任何框架;也许你应该先退后一步,学习更多关于Java的基础知识。例如,上面的代码可能在修复时有用;但是使用公共静态变量做所有事情......看起来非常像糟糕的设计。