2016-03-21 7 views
0

Der Code, den ich habe, ist wie folgt:nicht passieren kann Int Variable über Funktion in Java, die ein Int-Array Gibt

int diceAmount = sInput.nextInt(); 
int[] dice = dice.rollDice(diceAmount); 

Die Dice.java Klasse ist hier:

public static int[] rollDice(int diceAmount) { 
     int[] dice = new int[diceAmount]; 
     for(int i=0;i < diceAmount;i++){ 
      dice[i] = (int)(Math.random()*6) + 1; 
     } 
     return dice; 
    } 

Der Fehler dass ich bekomme ist das: "Kann rollDice (int) auf dem Array-Typ int []" nicht aufrufen.

Es sollte funktionieren, wenn man bedenkt, dass alles, was ich tue, eine Integer-Variable durchgibt und das zurückkehrende Array auf meine eigene Würfelvariable setzt.

Es funktioniert, wenn ich den Würfel nicht setze.rollDice (diceAmount); alles gleich, aber das ist nicht was ich will.

Vielen Dank.

+2

s/dice.rollDice/Dice.rollDice/ – rgettman

+0

Sie versuchen, eine Methode für Array nicht auf Objekt aufzurufen, dann wie Sie Java bitten können, eine RollDice-Methode aufzurufen, die aufgerufen werden soll. –

Antwort

2
int[] dice = Dice.rollDice(diceAmount); 
      ^
+0

Das hat funktioniert, danke. –

1

Dies ist, weil der Name Ihres Objekts instante Dice ist dice sowie die Ganzzahl-Array. Daher folgert der Compiler, dass Sie rollDice für das Integer-Array aufrufen möchten.

Dice dice = new Dice(); 
int diceAmount = sInput.nextInt(); 
int[] diceArray = dice.rollDice(diceAmount); 
1

Unter Berücksichtigung Klassennamen als Würfel, so dass die korrekte Funktion Berufung

sein sollte
int diceAmount = sInput.nextInt(); 

int[] dice = Dice.rollDice(diceAmount); 

Bitte beachten Sie, das Problem wurde

, die Ihr Objektname und Array-Name beider gleiche, das ist ist, warum Der Compiler gab Ihnen einen Fehler.

+0

Das hat auch funktioniert, danke, dass Sie das bemerkt haben. –

+0

willkommen bro .... –

Verwandte Themen