所以我在2天后从Eclipse切换到IntelliJ我看到了一个奇怪的问题。当我将完全相同的代码从Eclipse复制到IntelliJ时,代码在IntelliJ中不起作用。
代码:
public class Main extends JavaPlugin {
public void onEnable() {
}
public int number = 10;
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (!(sender instanceof Player)) {
sender.sendMessage("Console Only");
return true;
}
Player player = (Player) sender;
if (cmd.getName().equalsIgnoreCase("bomb")) {
if(args.length == 0){
player.sendMessage("You must specify a player");
return true;
}
Player target = Bukkit.getServer().getPlayer(args[0]);
if(target == null){
player.sendMessage("Couldn't find that player!");
return true;
}
Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
public void run() {
if (number != -1) {
if (number != 0) {
target.sendMessage("§a§l" + number + "§7 until you will explode!");
number--;
} else {
number--;
Location loc = target.getLocation();
World world = Bukkit.getServer().getWorld("world");
world.createExplosion(loc, 2F);
}
}
}
}, 0, 20L);
}
return true;
}
}
此代码适用于Eclipse,但不适用于IntelliJ。 IntelliJ说我需要添加一个' final'到这部分代码:
Player target = Bukkit.getServer().getPlayer(args[0]);
但是当我这样做时,插件就不再适用了。 为什么它在Eclipse中工作但在IntelliJ中不起作用?
答案 0 :(得分:0)
您所看到的可能不是编译错误,而是IntelliJ代码检查。这些会发出警告,例如红色下划线(如编译错误),黄色下划线(如编译器警告)等。如果您将插入符号放在标记为红色的位置,并按下alt + Enter,则应给予一些选择,其中包括像“编辑检查设置”之类的东西。在这里你可以禁用这个检查。或者,您可以开始使用final
..