title: Getting a String from an ArrayList returns null
body: <p>I have an ArrayList of Tiles with two values; an int and a String.</p>
  
  <p>I need to get both values, so while I was writing the code I decided to make sure it was working:</p>
  
  <pre><code>private void setIcons()
      {
          ArrayList&lt;Tiles&gt; tiles = new ArrayList&lt;&gt;();
          tiles = game.getTiles(0);
          Tiles i = tiles.get(0);
          String s = i.returnTileName();
          System.out.println(i.returnTileName() +" ," +i.returnTileNumber());
      }
  </code></pre>
  
  <p>This is my Tiles class which has subclasses:</p>
  
  <pre><code>public class Tiles
  {
      int number;
      String name;
  
      public Tiles()
      {
  
      }
  
      public String returnTileName()
      {
          return name;
      }
  
      public int returnTileNumber()
      {
          return number;
      }
  }
  </code></pre>
  
  <p>'Tiles' has several subclasses, all structured almost the same:</p>
  
  <pre><code>public class Bamboo extends Tiles
  {
      int number;
      String name;
      public Bamboo(int number, String name)
      {
          this.number = number;
          this.name = name;
      }
  }
  </code></pre>
  
  <p>When I run it, the String is returned as 'null' and my int is returned as '0', when they clearly have values, as the image below will show.</p>
  
  <p><a href="http://img716.imageshack.us/img716/6154/emx4.jpg" rel="nofollow">http://img716.imageshack.us/img716/6154/emx4.jpg</a></p>
  
  <p>The method I call in setIcons() :</p>
  
  <pre><code> public ArrayList getTiles(int playerX)
      {
          ArrayList&lt;Tiles&gt; tiles = new ArrayList&lt;&gt;();
          Player pl = player.get(playerX);
          tiles = pl.playerTiles;
          return tiles;
      }
  </code></pre>
  
  <p>The 'Game' class has two ArrayLists in it, 'tilesDeck', an ArrayList of Tiles and 'player',   an ArrayList of a class Player.</p>
  
  <p>Here's my game class. Didn't know it had a scroll feature before now.</p>
  
  <pre><code>public class Game
  {
      ArrayList&lt;Tiles&gt; tilesDeck = new ArrayList&lt;&gt;();
      ArrayList&lt;Player&gt; player = new ArrayList&lt;&gt;();
  
      public Game()
      {
          addTile("Bamboo", 1);
          addTile("Bamboo", 2);
          addTile("Bamboo", 3);
          addTile("Bamboo", 4);
          addTile("Bamboo", 5);
          addTile("Bamboo", 6);
          addTile("Bamboo", 7);
          addTile("Bamboo", 8);
          addTile("Bamboo", 9);
  
          addTile("Circles", 1);
          addTile("Circles", 2);
          addTile("Circles", 3);
          addTile("Circles", 4);
          addTile("Circles", 5);
          addTile("Circles", 6);
          addTile("Circles", 7);
          addTile("Circles", 8);
          addTile("Circles", 9);
  
          addTile("Characters", 1);
          addTile("Characters", 2);
          addTile("Characters", 3);
          addTile("Characters", 4);
          addTile("Characters", 5);
          addTile("Characters", 6);
          addTile("Characters", 7);
          addTile("Characters", 8);
          addTile("Characters", 9);
  
          addTile("Dragons", 1);
          addTile("Winds", 1);
  
          Collections.shuffle(tilesDeck);
          player.add(new Player("Player 1"));
          player.add(new Player("Player 2"));
          player.add(new Player("Player 3"));
          player.add(new Player("Player 4"));
  
          startTiles();
      }
  
      private void addTile(String name, int number)
      {
          int counter = 0;
          if (name.contains("Bamboo"))
          {
              while (counter &lt; 4)
              {
                  tilesDeck.add(new Bamboo(number, name));
                  counter++;
              }
          }
  
          if (name.contains("Circles"))
          {
               while (counter &lt; 4)
              {
                  tilesDeck.add(new Circles(number, name));
                  counter++;
              }
          }
  
          if (name.contains("Characters"))
          {
               while (counter &lt; 4)
              {
                  tilesDeck.add(new Characters(number, name));
                  counter++;
              }
          }
  
          if (name.contains("Winds"))
          {
               while (counter &lt; 4)
              {
                  tilesDeck.add(new Winds("East"));
                  tilesDeck.add(new Winds("South"));
                  tilesDeck.add(new Winds("West"));
                  tilesDeck.add(new Winds("North"));
                  counter++;
              }
          }
  
          if (name.contains("Dragons"))
          {
               while (counter &lt; 4)
              {
                  tilesDeck.add(new Dragons("Red"));
                  tilesDeck.add(new Dragons("Green"));
                  tilesDeck.add(new Dragons("White"));
                  counter++;
              }
          }
      }
  
      private void startTiles()
      {
          int playerCounter = 0;
  
          while (playerCounter &lt; 4)
          {
              Player pl = player.get(playerCounter);
              int counter = 0;
              while (counter &lt;13)
              {
                  pl.playerTiles.add(tilesDeck.get(0));
                  tilesDeck.remove(0);
                  counter++;
              }
              playerCounter++;
          }
      }
  
      public ArrayList getTiles(int playerX)
      {
          ArrayList&lt;Tiles&gt; tiles = new ArrayList&lt;&gt;();
          Player pl = player.get(playerX);
          tiles = pl.playerTiles;
          return tiles;
      }
  }
  </code></pre>