2016-06-13 4 views
0

In Ordnung, also arbeite ich an einem kleinen Programm, in dem ich eine Methode habe, die auf eine Arraylist zugreift. SoMethodenparameter und ArrayLists

:

public void setGroups(int groupA, int groupB, ArrayList< String > groups)

dann habe ich meine Arraylist im Körper meiner Hauptmethode:

ArrayList groupSets = new ArrayList< String >( Arrays.asList("group1", "group2"));

Also meine Frage ist, wie nenn ich diesen Code in meinem Hauptmethode? Mein Problem ist mit dem arraylist Teil. Auch diese Ints der Gruppe A/B werde ich verwenden, um Elemente aus der ArrayList zu ziehen.

So wäre es wie ?:

playGame(0, 1, ArrayList< String > groupSets);

Außer, dass ich weiß, dass der Arraylist Teil falsch ist, und ich bin nicht sicher, ob die Ints richtig oder falsch, wie gut sind, scheinen sie Recht, aber ich konnte sein völlig aus. Bitte irgendeine Hilfe ?!

+1

Warum nicht diese Methode eine Arraylist machen zurückkehren? Eine Setter-Methode mit Nebenwirkungen zu haben, scheint ein schlechtes Design zu sein. –

Antwort

1

Ihre Deklaration und Ihr Anruf sind unterschiedlich, daher ist Ihre Frage etwas verwirrend.

Der Anruf sollte nicht jede Art gehört

setGroups(groupA, groupB, groups); 
+0

Okay, wenn ich meinen Anruf auf diese Weise formatiere: setGroups (0, 1, groups); Es wird ein Fehler ausgegeben, der besagt "Nicht-statische Methode setGroups (int, int, ArrayList ) kann nicht aus einem statischen Kontext referenziert werden. – Smackelbap

+0

Erstellen Sie eine Instanz der Klasse, die diese Methode implementiert. – duffymo

0

Its just

ArrayList<String> groupSets = new ArrayList<String>(); 
playGame(0, 1, groupSets); 
0

Im Einvernehmen mit beiden der Teilantworten oben, mal sehen, ob wir diese umfassenden machen können:

import java.util.ArrayList; 
import java.util.Arrays; 
import java.util.List; 

public class GroupStuff { 

    public static void main(String[] args) { 
     List<String> groupSets = new ArrayList<>(Arrays.asList("group1", "group2")); 
     GroupStuff gs = new GroupStuff(); 
     gs.setGroups(0,1,groupSets); 
    } 

    public void setGroups(int groupA, int groupB, List<String> groups) {  
     //Do whatever you do here... 
    } 
} 

Und ....

playGame(0, 1, ArrayList<String> groupSets); 

sollte

playGame(0, 1, groupSets); 
Verwandte Themen