2011-11-24 2 views
-1
public void thisisnotworking() 
{ 
    Scanner input=new Scanner(System.in); 
    String cardA; 
    String cardB; 
    System.out.print("Enter Card: "); cardA=input.nextLine(); 
    System.out.print("Enter Card "); cardB=input.nextLine(); 
    Card a = game.get(game.indexOf(cardA)); 
    Card b = game.get(game.indexOf(cardB)); 

이 코드는 작성한 방법 중 일부입니다. 기본적으로 사용자는 배열 목록에 카드 중 하나 인 카드를 입력 한 다음 다른 카드를 입력합니다. 현재이 코드 부분을 실행할 때 IndexOutOfBoundsException 오류가 발생합니다.IndexOutOfBoundsException 오류

아무에게도 문제가 있다고 말할 수 있습니까?

+4

를? 오류를 일으키는 라인은 무엇입니까 (스택 트레이스에 있습니까)? –

+0

'게임'은 무엇입니까? – adarshr

+0

전체 게임 코드 또는 적어도 변수 게임이 정의/초기화/수정 된 라인을 작성하십시오. 또한 명령 행에서 제공하는 입력을 추가하십시오. –

답변

1

너무, -1game.get(-1)가 예외를 throw game.indexOf(cardA) 반환 game를 보지 않고 말을 어렵지만, cardAcardBgame에없는 것 같다.

또한, 귀하의 코드를 찾고, 당신은 gameString을 검색 한 다음 String이며 Card 객체에 할당 game에서 요소를합니다. Stringfinal 클래스이므로 String에서 Object 이외의 다른 클래스로 캐스트 할 수 없습니다.

0

어디서 게임에 카드를 넣으시겠습니까? 어떤 코드가 그것을 할 수없는없는이 있다면, 당신은

public void thisshouldwork() 
{ 
    Scanner input=new Scanner(System.in); 
    String cardA; 
    String cardB; 
    System.out.print("Enter Card: "); cardA=input.nextLine(); 
    System.out.print("Enter Card "); cardB=input.nextLine(); 
    game.add(cardA); 
    game.add(cardB); 
    Card a = game.get(game.indexOf(cardA)); 
    Card b = game.get(game.indexOf(cardB)); 

이 문제는 당신이 CARDA 또는 추가하지 않는됩니다 ... game.get(...);

+0

카드는 데크 arraylist에서 제거 된 다음 게임 방법을 사용하여 게임 arraylist에 넣어 게임 arraylist에 넣어집니다. (데크 arraylist는 52 장의 카드 파일에서 읽습니다.)이 방법은 플레이어가 카드 (실제로 2 장의 카드)를 입력 할 수있게 한 다음 게임 arraylist를 통해 해당 카드를 찾는 방법입니다. 따라서 사용 카드가 이미 arraylist에 있어야합니다. – DanMc

+0

그럼, 우리가 당신을 돕기를 원하면 게임 수업을 보여줘야합니다. – pushy

0

이 시도

game.set(cardA); 
game.set(cardB); 

전에 호출 할 필요가 카드 B를 게임에 넣으므로 indexOf은 -1을 반환하고 getIndexOutOfBounds Exception을 던집니다.

+0

그러나 cardA는 이미 arraylist에 있어야하며 메서드는 해당 카드를 검색해야합니다. – DanMc

+0

cardA가 이미 arraylist에 있어야하는 이유는 무엇입니까? – aeoliant

0

의 반환 값을 캐스팅해야합니다.Object에 방법 다음 toString() 메서드를 호출 : 당신이 사용하는 어떤 값

cardA=((Object)in.readLine()).toString(); 
관련 문제