2017-02-03 9 views
1

私のコードの中で、配列リストの最後の要素を乱数と比較しようとしていますが、タイプ:オブジェクトはintに変換できません "。私は解決策を見つけることができないようです。問題の問題はbooleanクラス 'checkLastGuess'で発生します。Javaコードは「エラー:互換性のない型:オブジェクトをint型に変換できません」

import java.util.Scanner; 
import java.util.Random; 
import java.util.ArrayList; 

public class GuessingGame 
{ 
    int numToGuess = new Random().nextInt(10); 
    ArrayList guesses = new ArrayList(); 

    void getGuess() 
    { 
     Scanner keyboard = new Scanner(System.in); 
     boolean valid = false; 
     int userGuess = 0; 

     while (valid == false) 
     { 
      System.out.print("What is your guess: "); 
      String num = keyboard.next(); 
      char new_num = num.charAt(0); 
      if (Character.isDigit(new_num)) 
      { 
       userGuess = Integer.parseInt(num); 

       if (userGuess >= 0 && userGuess < 10) 
       { 
        guesses.add(userGuess); 
        valid = true; 
       } 
       else 
       { 
        System.out.println("Invalid guess, please enter a number between 0 and 9."); 
       } 
      } 
      else 
      { 
       System.out.println("Invalid guess, please enter digit."); 
      } 
     } 
    } 

    void printGuesses() { 
     int list_length = guesses.size(); 
     System.out.print("Your guesses: "); 

     for (int counter = 0; counter < list_length; counter++) 
     { 
      System.out.print(guesses.get(counter) + " "); 

     } 
     System.out.println(); 
    } 
    boolean checkLastGuess() 
    { 
     int numToTest = guesses.get(guesses.size()-1); 
     if (numToTest == numToGuess) 
     { 
      return true; 
     } 
     else 
     { 
      return false; 
     } 
    } 
} 

コードは、次のテストプログラム

public class GuessingGameTest { 
    public static void main(String[] args) { 
     GuessingGame game = new GuessingGame(); 
     System.out.println("Number to guess: " + game.numToGuess); 
     boolean guessedNumber = false; 

     while (!guessedNumber) { 
      game.getGuess(); 
      guessedNumber = game.checkLastGuess(); 
     } 
    } 

} 
+3

'ArrayList ' –

+0

は、エラーが発生する行を推測しますか? – Salman

+0

エラーは "int numToTest = guesses.get(guesses.size() - 1);" – mikecal7

答えて

1

には、ArrayListを正しく初期化していない駆け抜けています。

ArrayList guesses = new ArrayList(); 

ArrayList<Integer> guesses = new ArrayList<Integer>(); 

へのArrayListを変更するには、ArrayListにあるか知っているように、彼らは彼らの建設に指定するオブジェクトを必要として( ArrayList<E>)一般的なものです。

関連する問題