Java如果语句不能正常工作?

时间:2017-12-27 06:12:11

标签: java

使用pIRCBot。

Class: pIRC.java
protected void onJoin(String channeljoined, String sender, String login, String hostname) {
    Bukkit.getLogger().log(Level.INFO, "Channel joined: " + channeljoined + ". IRC channel: " + IRC.channel + "." );
    if(channeljoined == IRC.channel)
    {
        Bukkit.getLogger().log(Level.INFO, "--");
        for (Player player : Bukkit.getOnlinePlayers()) {
            player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&c[IRC]&e " + sender + "&f has joined the IRC channel."));
        }
    }
}

我的IRC课程有:

Class: IRC.java
public static String channel;

然后我将频道更改为从配置文件中获取的字符串:

Class: IRC.java
channel = this.getConfig().getString("publicchannel");

现在每当用户加入IRC频道时,它就会打印出来:

[11:03:53 INFO]: Channel joined: #MoMoMC. IRC channel: #MoMoMC.

但它不会进入下一个if语句。我做错了吗?

1 个答案:

答案 0 :(得分:0)

您正在将String与==,始终使用.equals方法进行comare String比较。 String是一个类。该函数检查字符串的实际内容,==运算符检查对象的引用是否相等。 请改变这样的条件:

if(channeljoined.equals(IRC.channel))