我正在制作一个IRC机器人.如果有人输入"!tell username:message",我希望能够看到用户是否在线.这是我的代码的第一部分,它通过频道中的用户查看并检查用户是否已经在线:
if (messageIC.startsWith("!tell ")) {
boolean userIsOnChannel;
String messagey = message.substring(6);
String[] messager = messagey.split(":");
String username = messager[0];
User[] users = getUsers(channel);
for (final User user : getUsers(channel)) {
if (user.getNick().equalsIgnoreCase(username)) {
userIsOnChannel = true;
sendMessage(channel, username + " is online now!");
break;
}
else {
userIsOnChannel = false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,当我在NetBeans中使用它时,它告诉我从不使用变量userIsOnChannel.我以为我在if/else语句中使用过它.这会产生问题,因为我希望能够存储用户的消息,并且如果布尔值返回false,则沿着"我将它传递给"通道发送一些内容.当我尝试使用布尔值时,我得到一个从未初始化的错误.我做错了什么?
一旦代码块完成,该变量就会超出范围.你通过设置"使用"它,但你从不将它用作布尔值(你永远不会检查它的值.
你可能需要改变
if (messageIC.startsWith("!tell ")) {
boolean userIsOnChannel;
Run Code Online (Sandbox Code Playgroud)
至
boolean userIsOnChannel = false;
if (messageIC.startsWith("!tell ")) {
Run Code Online (Sandbox Code Playgroud)
以便在该代码块之后userIsOnChannel可用.
你得到"可能没有被初始化",因为它只是通过写作得不到价值
boolean userIsOnChannel;
Run Code Online (Sandbox Code Playgroud)
你需要为它赋值(在这种情况下可能是假的)..
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |