2016-11-20 34 views
0

因此,我在2天后從Eclipse切換到IntelliJ,發現了一個奇怪的問題。當我將完全相同的代碼從Eclipse複製到IntelliJ時,代碼將無法在IntelliJ中運行。Eclipse中的代碼無法在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說,我需要添加一個「最終」的這部分代碼:

Player target = Bukkit.getServer().getPlayer(args[0]); 

但是當我做這個插件只是不工作了。 爲什麼它在Eclipse中工作,但不在IntelliJ中?

+8

您正在使用Eclipse中的Java 8進行編譯,但在IntelliJ中使用了以前的版本。 –

回答

0

你所看到的可能不是編譯錯誤,而是IntelliJ代碼檢查。它們會給出警告,如紅色下劃線(如編譯錯誤),黃色下劃線(如編譯器警告)等。如果您將插入符號放在某處標記爲紅色的位置,並按Alt + Enter,應該給出一些選擇,其中包括像「編輯檢查設置」。在這裏你可以禁用這個檢查。或者,您可以開始使用final ..

相關問題