2017-01-12 1 views
-2

Ich versuche, eine Methode in einer anderen Klasse zu verwenden, um Ergebnis in einer Liste in dieser Klasse zu drucken, aber ich habe Probleme mit a Methode aus einer anderen Klasse. Hier ist die Methode, die ich in der Klasse Ereignis bin mit, in dem die Liste gespeichert ist:Kann eine Methode in einer anderen Klasse nicht verwenden, um Array-Listenergebnisse auszudrucken

public void listParticipantResult(Participant participant) { 
    ArrayList<Result> results = sortResults(); 

    for (Result result : results) { 

     if (result.getParticipant().getId() == participant.getId()) { 
      System.out.println(result); 
     } 
    } 
} 

Und das ist, wo ich versuche, die Methode in meinem Hauptprogramm aufzurufen, aber das Verfahren in der Klasse Ereignis kann nicht aufgelöst werden. Ich bin nicht sicher, wie man es als ein Objekt deklariert, damit ich die Methode verwenden kann.

private void participantResult() { 
    System.out.print("Number: "); 
    int participantNumber = readInt(); 

    Team team = null; 
    Participant participant = null; 

    for (Team teamFromList : teamList){ 
     if (teamFromList.hasParticipantWithId(participantNumber)) { 
      participant = teamFromList.getParticipantById(participantNumber); 
      team = teamFromList;  
     } 
    } 
    if (participant == null) { 
     System.out.println("Participant with number " + participantNumber + " does not exist."); 
     return; 
    } 
    else { 
      event.listParticipantResult(); <- right here. 
     } 
    } 
+1

ist es nicht nur, dass Sie den Teilnehmer nicht als Parameter übergeben? –

Antwort

1

Sie benötigen ein Event-Objekt

Event event = new Event(); //Or something similar based on constructor 

Sie müssen erstellen Stellen Sie dann sicher, dass Sie einen Teilnehmer übergeben, wie es Ihre Event.listParticipantResult() erfordert.

+0

Als ich das versuchte, benutze meinen Konstruktor, so; \t else { \t \t \t Ereignis Ereignis = neues Ereignis (null, participantNumber); \t \t \t Event.listParticipantResult (Teilnehmer); \t \t \t} \t \t} es sagt, "kann nicht statischen Verweis auf nicht statische Methode machen":/ – user7379898

+1

Es muss event.listParticipantResult (Teilnehmer) sein; –

0

Wo deklarieren Sie event? Sie übergeben auch kein Argument an den listParticipantResult() Aufruf, sollten Sie nicht in einem Objekt übergeben werden?

1

listParticipantResult(Participant participant) benötigt ein Argument des Typs . In der 3. Zeile von unten, sind vorbei Sie keine Argumente:

... 
event.listParticipantResult(); 
... 

Ändern Sie es an:

... 
event.listParticipantResult(participant); 
... 
Verwandte Themen