Just nu i M3-nätverket
Gå till innehåll

Använda en vektor skapad i en konstuktor?


Muppx

Rekommendera Poster

public class test {

   public static void main(String[] args) throws IOException {
Filter f1 = new Filter();

   }
}

class Filter {
   private String[] badWords;

   //konstruktorn instansierar vektorn badWords och lägger in orden i vektorn
   public Filter() {
badWords = new String[8];
String[] badWords = {"skuldsanering","sex","inkomst","ränta","rea","debt",
"porn","viagra","sale"};

   }
   public int filter(String line) {
               for(int i = 0; i<8; i++) {
    System.out.println(badWords[i]);
}
   } 
}

 

Det jag har försökt göra här är att instansiera en vektor badWords i konstruktorn Filter() vilket fungerar utmärkt. Problemet är att jag vill använda vektorn i min metod filter() men när elementen från vektorn skrivs ut där så har alla värdet null, vektorns värden verkar inte ha följt med från Filter(). Vektorn måste instansieras och få värden i konstuktorn Filter().

 

Hur gör jag för att kunna använda vektorn i metoden filter() med de värden den fick i Filter()?

 

Länk till kommentar
Dela på andra webbplatser

-Patrik Johansson-

Hej

Anledningen till att du får null i filter() är at du skapar en array badWords som bara finns i konstruktorn.

 

Så får att åtgärda det får du antingen göra deklaration på samma rad som private String[] badWords; dvs så du får

private String[] badWords = {"sssss...

 

Annars kan du alltid göra en lokal kopia i konstruktorn och kopiera över alla dessa värden till badWords...

 

 

//Patrik J

"Insanity: doing the same thing over and over again and expecting different results."
- citat av Albert Einstein

 

Länk till kommentar
Dela på andra webbplatser

Tackar för svar

 

Ja, tyvärr måste vektorn deklareras i konstruktorn (ett uppgiftskrav). Min lösning får nog bli en lokal kopia men jag är inte säker på vad du menar med det. Hur kommer jag åt denna lokala kopia från filter()?

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...