2015-05-19 11 views
5

Desidero sapere come utilizzare l'oggetto ObjetTWS con il parametro della funzione ObjectTWS(). E come posso mettere l'oggetto in un Arraylist o List.Oggetto Java in Arraylist o Elenco

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){ 

ho già provato questo, ma si dice ObjetTWS indefinito:

ObjetTWS obj = new ObjetTWS(); 

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

stai l'inizializzazione della liste da qualche parte? – Stugal

+0

Sì, ma il problema è con l'oggetto che ho creato.L'errore di questa riga ObjetTWS obj = new ObjetTWS() è constructor ObjetTWS non è definito. – Subas

+2

@Subas, gli attributi (eccetto se si tratta di un caso particolare) dovrebbero essere tutti privati ​​e il loro modo di accedervi dovrebbe sempre essere utilizzando i metodi getter e setter. Tienilo a mente. – Drumnbass

risposta

6

È già definito un costruttore:

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

che rende la JVM di omettere il costruttore di default, quindi è necessario aggiungilo manualmente

public ObjetTWS() {} 

o dichiarare oggetto con data costruttore:

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

primo luogo si dovrebbe inizializzare la lista

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

quindi si tenta di aggiungere elementi in esso.

E anche cercare di mantenere il costruttore di default

come si sono scavalcarlo mettendo argomenti del costruttore

public ObjectTWS() {} 
+1

Scusa ero nel mezzo di eidting la mia risposta per il momento in cui hai commentato :) – Babel

1

Per impostazione predefinita, gli oggetti hanno un parametro meno del costruttore (che è quello che si sta chiamando nel vostro secondo snippet di codice). Questo tuttavia, diventa sostituito con altri costruttori quando li fornite, che è ciò che state facendo nel vostro primo esempio.

Per risolvere questi problemi, si hanno 2 opzioni:

  1. Aggiungere un parametro meno di costruzione nella classe ObjetTWS: public ObjeTWS() {} //Do any initialization here

  2. Nel secondo esempio di codice, utilizzare questo: ObjetTWS obj = new ObjetTWS(p_nom, p_type, p_jobAmont, p_jobAval);

2

Poiché è stato creato un costruttore nella propria classe con parametro, quindi il costrutto predefinito o non funzionerà affatto, quindi è necessario passare i parametri con il costruttore e anche inizializzare la lista prima di aggiungervi elementi.

0

public ObjetTWS(String p_nom, String p_type,String p_jobAmont,String p_jobAval) quello che hai qui è un costruttore parametrizzato. Tuttavia nel codice si sta cercando di fare questo ObjetTWS obj = new ObjetTWS();

Quello che ci dicono è che non si dispone di un costruttore senza argomenti.

Così, per essere in grado di fare questo, è necessario aggiungere un altro costruttore per la classe, che dovrebbe assomigliare a questo:

public ObjectTWS() { 
    // Any code logic 
}