Search code examples
javacompiler-warningsbluej

Recompile with Xlint on BlueJ for warnings details


I'm a student and i have to created a game. I finished but i have to let it with NO warning. I have a warning I don't know where it come from.

Myclass.java uses unchecked or unsafe operations. Recompile with -Xlint:unchecked for details.

I know it's when a List is not specified, but i don't have List or ArrayList in this class. My question is how I compile with Xlint to have details on this warning ? I am on Windows 7.

( Sorry if my english is bad, it's not my main language.) Thanks.

( this is the whole code of my classe )

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();
        }           
     }

Solution

  • The problem I found so far, is in this method:

    public Stack getStack()
    {
        return previousRoom;
    }
    

    Stack<T> is a generic class, using this class requires a type parameter to say what kind of objects are you going to add to it. If you forgotten to do so, Xlint will warn you. You can look for other similar errors yourself.

    Further Tips

    • Usually you should always check the class documentation before using it. Google is your friend, even when you are programming.

    • Only in case the documentations is not available for some reason, if you have ever seen a class have been used as SomeClass<T>, always use it in this form because this is a generic class. In case you have no idea about what T is or you don't really care, use SomeClass<?>.