2016-05-02 3 views
0

, wenn ich diese Hashmap in Haupt einer Füllung schaffen es in, funktioniert alles perfektWie kann ich eine hashMap füllen, wenn die hashMap in einer Klasse statt in einer main liegt?

HashMap<String, Furgoneta> mapper = new HashMap<>(); 
    LocalDate f1 = LocalDate.of(2013, Month.JANUARY, 1); 
    LocalDate f2 = LocalDate.of(2016, Month.FEBRUARY, 10); 
    Furgoneta furgo1 = new Furgoneta("0001AAA", "Seat", "Ibiza", false, f1, f2, 3100); 


    //FILLING HASHMAP 
    mapper.put(furgo1.getMatricula(), furgo1); 
    System.out.println(mapper.toString()); 

wenn ich versuche, diesen gleichen Code innerhalb einer Klasse zu schreiben, statt Haupt der Put wird nicht funktionieren (nicht in der Lage hashmap zu füllen)

//FILLING HASHMAP 
    mapper.put(furgo1.getMatricula(), furgo1); 
    System.out.println(mapper.toString()); 

Objekt furgoneta (bedeutet van)

public class Furgoneta extends VehiculoAlquiler implements Serializable  
{ 
    private int mma; 


    //constructor 
    public Furgoneta(String matricula, String marca, String modelo, boolean alquilado, 
      LocalDate fechaI, LocalDate fechaF,int mma) { 
     super(matricula, marca, modelo, alquilado, fechaI, fechaF); 
     this.mma = mma; 
    } 

    public int getMma() { 
     return mma; 
    } 

wenn ich dieses Haupt schreiben funktioniert es

HashMap<String, Furgoneta> furgonetas = new HashMap<>(); 
    LocalDate f1 = LocalDate.of(2013, Month.JANUARY, 1); 
    LocalDate f2 = LocalDate.of(2016, Month.FEBRUARY, 10); 
    Furgoneta furgo1 = new Furgoneta("0001AAA", "Seat", "Ibiza", false, f1, f2, 3100); 


    //Las introducimos en la HashMap 
    furgonetas.put(furgo1.getMatricula(), furgo1); 
    System.out.println(furgonetas.toString()); 


    furgo1.importeAlquiler(f1, f2); 

aber ich will genau das gleiche tun, sondern mit der Hashmap innerhalb einer Klasse nicht im Haupt

Ich kann nicht in der hashmap fülle ich herstellte. Wenn die hashmap innerhalb von main ist, kann ich sie ausfüllen, aber wenn ich versuche, die hashmap in eine Klasse anstatt in main zu schreiben und sie zu füllen, sagt ich, dass "Paketmapper existiert nicht" und "Paket" furgo1 wird nicht beendet "wenn mapper den hashmap-namen und furgo1 ein objekt haben soll

ich kann meinen fehler nicht sehen, ich würde mich über einige hilfe freuen, ich stecke hier stundenlang fest. Sorry, wenn verwirrend ist das erste Mal, dass ich frage

+0

Können Sie erläutern, was meinst du mit "kann nicht füllen", könnten Sie auch eine [mcve] (http://stackoverflow.com/help/mcve) posten? –

+0

Veröffentlichen Sie Ihren Klassencode – Nadir

+0

Ich würde vermuten, dass Sie Ihre Klasse nicht richtig bauen oder einrichten @Bea. Aber Sie müssen wirklich mehr erklären, was falsch läuft. Die Fehlermeldung/Kontrollfluss, den Sie durchlaufen. Nichts in Java [lebt außerhalb der Klassen] (http://stackoverflow.com/a/2155407/703644), so zu sagen, "das funktioniert nicht in einer Klasse" ist auch eine Art irreführende FYI – TheNorthWes

Antwort

0

Sie mögen dies tun könnte:

Map<String, String> map = new HashMap<String, String>() {{ 
    put("1", "one"); 
    put("2", "two"); 
    put("3", "three"); 
}}; 

Es wird „double Klammer Initialisierung“

Die erste Klammer erstellt eine neue AnonymousInnerClass genannt, die Sekunde deklariert einen Instanzinitialisierungsblock, der ausgeführt wird, wenn die anonyme innere Klasse instanziiert wird.

+0

vielen dank, das ist was ich brauchte, es funktioniert jetzt :) – Bea

Verwandte Themen