2015-05-19 7 views
5

Ich möchte wissen, wie ich mein Objekt ObjetTWS mit dem Parameter meiner Funktion ObjectTWS() verwenden kann. Und wie kann ich das Objekt in eine Arraylist oder eine List setzen.Java-Objekt in Arraylist oder Liste

public class ObjetTWS { 

    String nom; 
    List<String> jobAmont; 
    List<String> jobAval; 
    String type; 


    public ObjetTWS(String p_nom, String p_type,String p_jobAmont,String p_jobAval){ 

Ich versuche, das schon, aber es sagt ObjetTWS undefined:

ObjetTWS obj = new ObjetTWS(); 

obj.nom = p_nom; 
obj.jobAmont.add(p_jobAmont); 
obj.jobAval.add(p_jobAval); 
obj.type = p_type; 
+0

initialisieren Sie die Listen irgendwo? – Stugal

+0

Ja, aber das Problem ist mit dem Objekt, das ich erstellt habe.Der Fehler dieser Zeile ObjetTWS obj = new ObjetTWS() ist der Konstruktor ObjetTWS ist undefiniert. – Subas

+2

@Subas, Attribute (außer wenn es sich um einen bestimmten Fall handelt) sollten alle privat sein und die Möglichkeit, auf sie zuzugreifen, sollte immer Getter- und Setter-Methoden verwenden. Denken Sie daran. – Drumnbass

Antwort

6

Sie definiert bereits einen Konstruktor:

public ObjetTWS(String p_nom, String p_type,String p_jobAmont,String p_jobAval){ 

, dass die JVM macht den Standard-Konstruktor wegzulassen, so müssen Sie fügen Sie es manuell hinzu

public ObjetTWS() {} 

Oder erklären Objekt mit bestimmten Konstruktor:

ObjetTWS obj = new ObjetTWS(p_nom, p_type,p_jobAmont, p_jobAval); 
1

Zuerst sollten Sie die Liste

public class ObjetTWS { 
    String nom; 
    List<String> jobAmont = new ArrayList<String>(); 
    List<String> jobAval = new ArrayList<String>(); 
    String type; 

Dann initialisieren Sie versuchen, Elemente in es hinzuzufügen.

Und auch versuchen, Ihre Standard-Konstruktor zu halten

Wie Sie es von Argumenten Konstruktor

public ObjectTWS() {} 
+1

Entschuldigung, ich war mitten in Eidting meine Antwort bis Sie kommentiert haben :) – Babel

1

sind standardmäßig überschreiben, Objekte haben einen Parameter weniger Konstruktor (das ist diejenige, die Sie in nennend Ihre zweites Code-Snippet). Dies wird jedoch mit anderen Konstruktoren ersetzt, wenn Sie sie bereitstellen, was Sie in Ihrem ersten Beispiel tun.

diese Probleme zu lösen, haben Sie 2 Möglichkeiten:

  1. einen Parameter weniger Konstruktor in Ihrer ObjetTWS Klasse hinzufügen: public ObjeTWS() {} //Do any initialization here

  2. In Ihrem zweiten Codebeispiel verwenden diese: ObjetTWS obj = new ObjetTWS(p_nom, p_type, p_jobAmont, p_jobAval);

2

Da Sie einen eigenen Konstruktor in Ihrer Klasse mit Parameter so Standardkonstrukt erstellt haben oder wird überhaupt nicht funktionieren, also müssen Sie die Parameter mit Ihrem Konstruktor übergeben und auch die Liste vor dem Hinzufügen eines Elements initialisieren.

0

public ObjetTWS(String p_nom, String p_type,String p_jobAmont,String p_jobAval) Was Sie hier haben, ist ein parametrisierter Konstruktor. Jedoch in dem Code, den Sie versuchen, dies zu tun ObjetTWS obj = new ObjetTWS();

Was es uns sagen, dass Sie keinen Konstruktor ohne Argumente haben.

also in der Lage sein, dies zu tun, müssen Sie einen anderen Konstruktor Ihrer Klasse hinzuzufügen, die wie folgt aussehen:

public ObjectTWS() { 
    // Any code logic 
} 
Verwandte Themen