在 BlueJ 上使用 Xlint 重新编译以获取警告详细信息

问题描述 投票:0回答:1

我是一名学生,我必须创建一个游戏。我完成了,但我必须在没有任何警告的情况下让它完成。 我有一个警告,我不知道它来自哪里。

Myclass.java 使用未经检查或不安全的操作。 使用 -Xlint 重新编译:未选中详细信息。

我知道这是在未指定 List 的情况下发生的,但我在此类中没有 List 或 ArrayList。 我的问题是如何使用 Xlint 进行编译以获得有关此警告的详细信息? 我使用的是 Windows 7。

(抱歉,如果我的英语不好,那不是我的主要语言。) 谢谢。

(这是我班级的全部代码)

package pgk_game;
import java.util.*;
import java.io.*;
import pgk_command.*;

/**
 * Classe destine aux caracteristiques du joueur. On y met sa Room actuelle, son inventaire, son poids maximum.
 * @Visentin Romain et Marquet Gauthier
 * Aide a partir d'une version propose par Poul Henriksen (http://media.pearsoncmg.com/intl/ema/ema_uk_he_barnes_bluej_3/solutions/resources/zuul-with-player.zip)
 */

public class Player
{
    public Room currentRoom; 
    private Stack<Room> previousRoom;
    private ItemList inventaire;
    private double maxPoids;
    public Room beamerRoom;
    public static int maxMov;

        /**
     * Constructeur de la classe Personnage
     */
    public Player()
    {
        this.currentRoom = null;
        this.inventaire = new ItemList();
        this.previousRoom = new Stack<Room>();
        this.maxPoids = 2;
        this.maxMov = 21;
    }

    public Room getRoom()
    {
        return currentRoom;
    }

     public ItemList getInventaire()
    {
        return inventaire;
    }

    public double getmaxPoids()
    {
        return maxPoids;
    }

    public void changemaxPoids(double newPoids)
      {
        this.maxPoids = newPoids;
    }

    /**
     *  Essaye de prendre l'objet
     */
       public Item prendreItem(String nom) 
       {
        if(possible(nom)) {
            Item item = currentRoom.removeItem(nom);
            if (item == null)
            {return null;}        
            inventaire.add(nom,item); 
            double newPoids = getmaxPoids() - item.getWeight();
            changemaxPoids(newPoids);
            return item;
        } else {
            return null;
        }
    }

    public Item verifTeleporteur()
    { { Item item = inventaire.get("teleporteur");
      if (item != null)
      {return item;}}

      {return null;}
    }

    public void chargeRoom()
    {
        beamerRoom = currentRoom;
    }

    public void tireRoom ()
    {
        modifRoom(beamerRoom);
    }

     /**
     * Essaye de jeter l'objet
     */
    public Item jeterItem(String nom) {
        Item item = inventaire.remove(nom);
        if(item != null) {
            currentRoom.setItem(nom,item);
            double newPoids = getmaxPoids() + item.getWeight();
            changemaxPoids(newPoids);

        }
        return item;
    }

    public Stack getStack()
    { return previousRoom;
    }

    public void modifRoom(Room nextRoom)
    {
        currentRoom = nextRoom;    
        maxMov -= 1;
    }


    public Room popStack()
    {return previousRoom.pop();}

        public boolean emptyStack ()
    {
        return previousRoom.empty();
    }

    /**
     * Verification si l'item peut etre pris
     */

      private boolean possible(String nom) {
        boolean possible = true;
        Item item = currentRoom.getItemRoom(nom);
        if(item == null) {
            possible = false;
        }
        else { double Poidstotal = maxPoids - item.getWeight();
        if(Poidstotal < 0 ) {
            possible = false;
        }}
             return possible;       
    }

        /** 
     * Try to go to one direction. If there is an exit, enter the new
     * room, otherwise print an error message.
     */
    public void goRoom(String direction) 
    {
        UserInterface gui = GameEngine.getGui();
        Room nextRoom = currentRoom.getExit(direction);
        if ( maxMov <= 0 )
            {loseGame();}        
        else if (nextRoom == null)
            { gui.println("Il n'y a pas de portes !\n"); }

            else 
             {
              Room nextRoomTrolol = MovingCharacter.movCharacter(); 
              MovingCharacter.changeRoom(nextRoomTrolol);
              MovingCharacter.modifRoom(nextRoomTrolol);
              getStack().push(getRoom());
              modifRoom(nextRoom);                                           
              gui.println(getRoom().getLongDescription());
            if(getRoom().getImageName() != null)
                gui.showImage(getRoom().getImageName());}}

         public void endGame()
    { 
        UserInterface gui = GameEngine.getGui();
        gui.println("Merci d'avoir joue ! Au revoir.");
        gui.enable(false);
    }   

    private void loseGame()
    { UserInterface gui = GameEngine.getGui();
        gui.println("Vous avez depasser le nombre limite d'action ! Il est trop tard    pour \n rendre le projet a temps ! ");
        endGame();
    }           


    public void prendre(String item)
    {UserInterface gui = GameEngine.getGui();
    Item newItem = prendreItem(item);

    if ( newItem == null)
        gui.println("Vous ne pouvez pas prendre cet objet ! \n");
            else 
            gui.println("Vous avez pris " + item +"\n");
        }


      public void jeter(String item)
    {
     UserInterface gui = GameEngine.getGui();
     Item newItem = jeterItem(item);

    if(newItem == null) {
            gui.println("Vous ne portez pas l'objet suivant " + item +"\n");
        }
         else {
             gui.println("Vous avez jeter " + item +"\n" );
        }
   }


    /**
     * Retourner a la piece precedente
     */
    public void returnRoom()
        { 
           UserInterface gui = GameEngine.getGui();
            if (!this.emptyStack())
            { Room nextRoomTrolol = MovingCharacter.movCharacter(); 
              MovingCharacter.changeRoom(nextRoomTrolol);
              MovingCharacter.modifRoom(nextRoomTrolol);
              modifRoom( popStack());
               gui.println(getRoom().getLongDescription());
                if(getRoom().getImageName() != null)
                gui.showImage(getRoom().getImageName());
            }
          else 
          {gui.println("Vous etes deja revenus au point de depart !\n");
            gui.println(getRoom().getLongDescription());}
        }   

     /**
     * Inventaire
     */
    public void inventaire()
    { UserInterface gui = GameEngine.getGui();
     String inventaire = getInventaire().getInventaire();
     Double poids = new Double (getmaxPoids());
      gui.println ( "Vous avez en votre possesion : " + inventaire +"."+ "\n" + "Poids total restant : " + poids + " kg.\n" );
    }

        /**
    * Test
    */
    public void test(String nomFichier)
    {
        UserInterface gui = GameEngine.getGui();
           try {
           Scanner fichier = new Scanner(new File(nomFichier));
           while (fichier.hasNextLine())
           {             
               String commandLine = fichier.nextLine();
               GameEngine.interpretCommand(commandLine);
            }
            fichier.close();
        }
        catch(FileNotFoundException ef)
        { gui.println("Le fichier" +" " + nomFichier + " " + " n'existe pas !\n");
        }
     }



      public void manger(String nourriture)
    {
     UserInterface gui = GameEngine.getGui();
    Item item = mangerItem(nourriture);
    if ( item == null) // Si l'objet ne peut pas etre manger 
        gui.println("Vous ne pouvez pas manger cet objet !\n");
        else
        {gui.println("Vous avez manger " + nourriture +"\n");
        gui.println("Vous vous sentez en forme apres un petit cafe ! \nVous pouvez portez un kilo en plus.\n");
        getInventaire().remove(nourriture);}
    } 

      /**
     * Essaye de manger l'objet
     */
    public Item mangerItem(String nom) 
      { if(nom.equals("cafe"))
        { 
        Item item = inventaire.get(nom);
        if (item != null)
        {
        maxPoids += 1;
        double newPoids = getmaxPoids() + item.getWeight();
        changemaxPoids(newPoids);
        return item;
        }}
        return null;
    }

    public void charger()
    {   UserInterface gui = GameEngine.getGui();
        Item item = this.verifTeleporteur();
        if ( item == null )
        { gui.println("Vous ne possedez pas le teleporteur !\n");
        }
         else {gui.println ("Piece enregistree...\n");
        chargeRoom();}
    }

    public void tirer()
    { 
      UserInterface gui = GameEngine.getGui();
       Item item = this.verifTeleporteur();
       if ( item == null )
        {   gui.println("Vous ne possedez pas le teleporteur !\n");
        }
             else if (beamerRoom == null)
             {gui.println("Vous n'avez pas charge votre teleporteur !\n"); }    
            else
             { gui.println ("Teleporation ...\n");
             tireRoom();
            gui.println(getRoom().getLongDescription());}
     if(  getRoom().getImageName() != null)
          {gui.showImage(getRoom().getImageName());}}   

   public void alea(String chiffre)
    { GameEngine.forceRoom = chiffre;}

    public void alea()
    { GameEngine.forceRoom = null;}

    public void talk(String personnage)
    {UserInterface gui = GameEngine.getGui();
     Character perso = currentRoom.getCharacterText(personnage); 
     MovingCharacter movperso = currentRoom.getmovCharacterText(personnage); 
     avoirFinalTexte(personnage);
       if (perso == null)
         { if (movperso == null)
          { gui.println("Il n'y a personne ici ou il n'est pas la !\n"); 
     }


        else  if (perso.nbParle == 0)
        { gui.println(personnage + " : " + currentRoom.getmovCharacterText(personnage).getFirstTexte() + "\n");}
        else if ( perso.avoirfinal == false )
            {gui.println(personnage + " : " + currentRoom.getmovCharacterText(personnage).getGeneralTexte() + "\n") ; }         
            else { gui.println(personnage + " : " + currentRoom.getmovCharacterText(personnage).getFinalTexte() + "\n") ;} }

        else if (perso.nbParle == 0)
           { gui.println(personnage + " : " + currentRoom.getCharacterText(personnage).getFirstTexte() + "\n");}
        else if ( perso.avoirfinal == false )
            {gui.println(personnage + " : " + currentRoom.getCharacterText(personnage).getGeneralTexte() + "\n") ; }         
            else { gui.println(personnage + " : " + currentRoom.getCharacterText(personnage).getFinalTexte() + "\n") ;}
    }



    public void avoirFinalTexte(String nom)
    { UserInterface gui = GameEngine.getGui();
        if(nom.equals("patron"))
        {  Character personnage = currentRoom.getCharacterText(nom);
            if (personnage != null)
            { Item item = inventaire.get("test1");
                if (item != null)
                { getInventaire().remove("test1");
                  double newPoids = getmaxPoids() + item.getWeight();
                  changemaxPoids(newPoids);


                  personnage.avoirfinal = true;
                       winGame();}
                }
           }        
        }
        public void winGame()
        { UserInterface gui = GameEngine.getGui();
            gui.println("Vous avez rendu le projet à temps !  Bien joué ! \n ");
            endGame();
        }           
     }
java compiler-warnings bluej
1个回答
0
投票

目前我发现的问题,就在这个方法中:

public Stack getStack()
{
    return previousRoom;
}

Stack<T>
是一个泛型类,使用这个类需要一个类型参数来说明你要添加什么样的对象。如果您忘记这样做,Xlint 会警告您。您可以自己查找其他类似的错误。

更多提示

  • 通常您应该在使用之前检查类文档。即使在您编程时,Google 也是您的朋友。

  • 仅在文档因某种原因不可用的情况下,如果您曾经见过某个类被用作

    SomeClass<T>
    ,请始终以这种形式使用它,因为这是一个通用类。如果您不知道
    T
    是什么或者您不太关心,请使用
    SomeClass<?>

© www.soinside.com 2019 - 2024. All rights reserved.