【发布时间】:2021-09-01 15:44:53
【问题描述】:
我正在为一个学校项目开发一个非常简单的 minecraft 插件,但我似乎无法让这个 return false; 被“访问”
我使用的是 Eclipse IDE,这是我的代码
package com.genuishour.me;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class Events implements CommandExecutor{
private Main plugin;
public Events(Main plugin) {
this.plugin = plugin;
plugin.getCommand("hello").setExecutor(this);
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage("Only players can execute this command!");
return true;
}
Player p = (Player) sender;
String name = sender.getName();
if (p.hasPermission("hello.use")) {
p.sendMessage("Hello " + name + "!");
return true;
} else {
p.sendMessage("You do not have permission to execute this command");
return true;
}
return false; //unreachable code
}
}
【问题讨论】:
-
当 p 具有“hello.use”权限时,您希望何时返回,如果没有,则返回。哪种情况会同时跳过 if 和 else?由于您的
return false在那里不起作用,您需要为它找到一个更好的地方,并且有一个。当你想到它时,你就会发现它。 -
因为它是。
if (p.hasPermission("hello.use"))的两个分支都首先返回。如果你缩进你的代码,你可能会看得更清楚。
标签: java return unreachable-code