Search code examples
javatyping

How to get rid of type mismatch errors when creating objects into arrays of different type?


This is my class:

public class Test {     
    Test(){
        new Webshop
            (new Warenkorb[]{"Max", new Artikel[]{new Artikel("AAA",3.0)}, 
                                "Joe", new Artikel[]{new Artikel("BBB",3.0), 
                                new Artikel("CCC",3.0)}
                            },
                new Warenkorb[]{"Sam", new Artikel[]{new Artikel("BBB",3.0), 
                                                      new Artikel("CCC",3.0)}
                                },
            ); 
    }
}

and these are my constructors:

Artikel(String name, double preis){
    this.name = name;
    verkaufspreis = preis;
    Art = Warengruppe.S;

Warenkorb(String kunde, Artikel[] artikel){
    this.kunde = kunde;
    artikelliste = artikel;
    sessionid = s.nextInt();
    summe = 0;
    for(Artikel preis : artikel){
        summe += preis.verkaufspreis;
    }
}

I get type mismatch errors in the

Test class (String[] cannot be resolved to Warenkorb[] | Artikel[] cannot be resolved to Warenkorb).

How do I resolve these errors?


Solution

  • You are missing the constructor call of the Warenkorb elements.

    Try

    ...
    new Warenkorb[]{new Warenkorb("Max", new Artikel[]{new Artikel("AAA",3.0))}, 
                    new Warenkorb("Joe", new Artikel[]{new Artikel("BBB",3.0), 
                                                      new Artikel("CCC",3.0))}
    ...