2016-04-17 7 views
3

Ich arbeite an einer Aufgabe und fühle mich super nah dran! Aber ich verstehe die letzte Fehlermeldung, die ich bekomme, einfach nicht und habe mich gefragt, ob du mir helfen kannst, es zu verstehen, also vermeide ich es in der Zukunft.Sammlungen in Strings konvertieren, ungültige Methodendeklaration erhalten

Die Zuordnung begann mit einem Beispielcode aus:

import java.util.*; 

public class Proj09{ 
    public static void main(String args[]){ 
    new Proj09Runner().getCollection(); 
    } 
} 

class Proj09Runner{ 
    public void getCollection(){ 
     Collection collection = new TreeSet(); 
     Populator.fillIt(collection); 
     Iterator iter = collection.iterator(); 
     while(iter.hasNext()){ 
      System.out.print(iter.next()); 
     } 
    System.out.println(); 
    } 
} 

class Populator{ 
    public static void fillIt(Collection collection){ 
     collection.add("Able"); 
     collection.add("Baker"); 
     collection.add("aBle"); 
     collection.add("Charley"); 
     collection.add("Baker"); 
    } 
} 

Ausgang: Able Baker ABLE Charley Baker

Und unsere Aufgabe ist es, dass Code zu ändern, so dass es eine andere Haupt passt, dass ich bearbeiten nicht in der Lage:

import java.util.*; 

public class Proj09{ 
    public static void main(String args[]){ 
     Proj09Runner runner = new Proj09Runner(); 

     Collection <String> collection = runner.getCollection(); 

     collection.add("Able"); 
     collection.add("Baker"); 
     collection.add("aBle"); 
     collection.add("Charley"); 
     collection.add("Baker"); 

     Iterator <String> iter = collection.iterator(); 
     while(iter.hasNext()){ 
      System.out.print(iter.next() + " "); 
     } 
     System.out.println(); 
    } 
} 

bisher habe ich mit der Proj09Runner Klasse gespielt:

class Proj09Runner extends Proj09{ 
    public void getCollection(){ 
    System.out.println("My Name."); 
    System.out.println(); 
    } 
} 

Kleine Änderung an der Ausgabe, ich soll meinen Namen hinzufügen. Wunsch Ausgabe: My Name Able Baker ABLE Charley Baker

Aber ich verschiedene Fehler immer halten die Collection <String> collection = runner.getCollection(); auf die Linie zurück in den Haupt ich nicht ändern soll. Ich werde auf void aufgerufen werden nicht in der Lage sein, um Collection <String> oder "ungültige Methodendeklaration; Rückgabetyp erforderlich."

Kannst du mir helfen herauszufinden, warum ich diese Botschaften bekomme und was sie bedeuten, damit ich sie in Zukunft vermeiden kann?

Danke, ich weiß es wirklich zu schätzen.

+0

Sie müssen den Rückgabetyp von 'getCollection' ändern. – Radiodef

Antwort

0

Ich wollte weitermachen und die Antwort zu teilen:

import java.util.*; 

class Proj09Runner{ 
    public Collection <String> getCollection(){ 
     System.out.println("Name."); 
     Collection collection = new ArrayList(); 
     return collection; 
    } 
} 

ich nicht mit TreeSet gehen konnte, weil es und so nicht nur Duplikate akzeptieren würde, sobald „Baker“ drucken, also ging ich mit Arraylist stattdessen.

Vielen Dank für die Rückmeldung!

0

Dies sicher Bedürfnisse Verbesserung:

Collection <String> collection = runner.getCollection(); 

dies kein Collection<String>, beachten Sie Ihre Methode zurückgibt gibt nichts zurück.

public void getCollection(){ 

Entweder Ihre Methode Rückgabetyp und Definition ändert sich so etwas wie:

public Collection<String> getCollection(){ //followed by corresponding definition 

Oder Sie einfach

Collection <String> collection = new HashSet() ; //whatever your collection pertain to 
0
public Collection<String> getCollection(){ 
     Collection collection = new TreeSet(); 
     Populator.fillIt(collection); 
     Iterator iter = collection.iterator(); 
     while(iter.hasNext()){ 
      System.out.print(iter.next()); 
     } 
    System.out.println(); 
    return collection; 
    } 

Ihre getCollection method kehrt nothing verwenden können. es sollte eine collection

0

zurückgeben Ich habe dies versucht und es scheint eine gute Richtung zu sein. Halten Sie die wichtigsten:

import java.util.*; 

public class Proj09{ 
    public static void main(String args[]){ 
     Proj09Runner runner = new Proj09Runner(); 

     Collection <String> collection = runner.getCollection(); 

     collection.add("Able"); 
     collection.add("Baker"); 
     collection.add("aBle"); 
     collection.add("Charley"); 
     collection.add("Baker"); 

     Iterator <String> iter = collection.iterator(); 
     while(iter.hasNext()){ 
      System.out.print(iter.next() + " "); 
     } 
     System.out.println(); 
    } 
} 

Ich habe jetzt bekam:

class Proj09Runner{ 
    public Collection<String> getCollection(){ 
     return "Hailey"; 
    } 
} 

ich nicht wiederholen wollte, was bereits in der Haupt war, als es nicht notwendig schien. Die Rückkehr der Zeichenfolge "Hailey" behebt den alten Fehler, aber ein neuer Fehler ist aufgetaucht.

error: cannot find symbol 
public Collection<String> getCollection(){ 
    ^
symbol: class Collection 
location: class Proj09Runner 

Wissen Sie, was diese Art von Fehler anzeigt?

Unsere letzte Einheit war über Vererbung, und ich spielte mit "Proj09Runner erweitert Proj09 {" aber es schien keine Wirkung zu haben.

Verwandte Themen