Mithilfe einer ArrayList als Parameter des Konstruktors
Ich bin versucht zu schreiben Sie einen Konstruktor für eine Klasse, die akzeptiert einer ArrayList (mit ganzen zahlen) als eines der Argumente. Bei der Instanziierung dieser Klasse später, ich pass wird eine geeignete, voreingestellte Liste von Werten, so dass ich don ' T wollen, erstellen Sie eine leere Liste Konstruktor.
Leider, wenn ich versuche zu kompilieren, den folgenden code, Java spuckt fünf Fehler, alle mit der Linie 23 (mein Konstruktor-Funktion-definition). Jede Beratung wäre geschätzt:
/*
* SumGenerator
*
* @author James Scholes
*/
import java.util.ArrayList;
import java.util.Random;
public class SumGenerator
{
//Some initial variables
public int timesTable;
public int multiple;
/*
* Constructor
*
* @param timesTable(int): The times table to use for sum generation
* @param limit(int): The highest multiple to use in sum generation
* @param previousMultiples(ArrayList<Integer>): The previously used multiples to avoid sum duplication
*/
public SumGenerator(int timesTable, int limit = 10, ArrayList<Integer> previousMultiples)
{
this.timesTable = timesTable;
Random randomGenerator = new Random();
//Create a list to store our multiples
ArrayList<Integer> multiples = new ArrayList<Integer>();
//and add our multiples to it, only if
//they haven't been used before
for(int i = timesTable; i <= limit; i++)
{
if(previousMultiples.contains(i))
{
continue;
}
else
{
multiples.add(i);
}
}
this.multiple = multiples.get(randomGenerator.nextInt(multiples.size()));
}
}
SumGenerator.java:23: error: ')' expected
public SumGenerator(int timesTable, int limit = 10, ArrayList<Integer> previousMultiples)
^
SumGenerator.java:23: error: illegal start of type
public SumGenerator(int timesTable, int limit = 10, ArrayList<Integer> previousMultiples)
^
SumGenerator.java:23: error: <identifier> expected
public SumGenerator(int timesTable, int limit = 10, ArrayList<Integer> previousMultiples)
^
SumGenerator.java:23: error: ';' expected
public SumGenerator(int timesTable, int limit = 10, ArrayList<Integer> previousMultiples)
^
SumGenerator.java:23: error: <identifier> expected
public SumGenerator(int timesTable, int limit = 10, ArrayList<Integer> previousMultiples)
^
5 errors
- Was sind diese Fehler?
- stackoverflow.com/questions/997482/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht liefern Standardwerte für Parameter in Java:
int limit = 10
. Zu umgehen, liefern überladene Konstruktoren. Man muss nichtlimit
und versorgen die anderen mit dem default-Wert.Java unterstützt keine default-Argumente.
Entfernen Sie die
= 10
imint limit = 10
. Java unterstützt keine default-Werte für Konstruktor oder Methode Argumente.