2016-04-26 15 views
-1

Ich bin ein rostiger Programmierer und arbeite an einer Anwendung, die mehrere Objektklassen haben wird. Mein einziger Fehler ist ein Typenkonflikt, und ich bin nicht sicher, was der Debugger als ein Objekt liest, und welcher ist tatsächlich in der Koord-Klasse, die ich gemacht habe.Verarbeitungstyp stimmt nicht überein

public class Lily { 
    int state; 

    public Lily(coord[] pond) { 
int state = 0; 
coord place = new coord (mouseX, mouseY); 
pond = append(pond, place); \\this is the line that's getting a type error 

    } 

    public void draw(){ 
    ellipse(mouseX, mouseY, 40, 40); 
    fill(#08BC09); 

} 
} 

Und die coord Klasse

public class coord { 

    float[] pair = new float[2]; 

    public coord(float X, float Y){ 
    pair[0] = X; 
    pair[1] = Y; 

    } 
} 

Edit: Die Fehlermeldung lautet "Type Mismatch "java.lang.Object" stimmt nicht überein mit "main.coord []""

Irgendwelche Hilfe? Danke im Voraus.

+0

http://stackoverflow.com/questions/2843366/how-to-add-new-elements-to-an-array – stark

+1

Sie sollten Ihre Frage bearbeiten und den Text der Fehlermeldung hinzufügen. – Lii

+0

Können Sie bitte eine [mcve] posten, die wir ausführen können? Es ist schwer zu debuggen, wenn wir den Code nicht selbst ausführen können. –

Antwort

1

Um das Problem zu verstehen, lesen Sie bitte die Dokumentation zur append() Funktion in the reference. Speziell dieses Bit:

Wenn Sie ein Array von Objekten verwenden, müssen die von der Funktion zurückgegebenen Daten in den Datentyp des Objektarrays umgewandelt werden. Zum Beispiel: SomeClass[] items = (SomeClass[]) append(originalArray, element)

Mit anderen Worten, Sie haben, dies zu tun:

pond = (coord[])append(pond, place); 

Der Grund dafür ist, dass die append() Funktion ein Object[] Array als Parameter übernimmt. Also, obwohl Sie es ein coord[] Array übergeben, weiß es nicht, welchen Typ das Array enthält. Also, wenn es es an Sie zurückgibt, erhalten Sie ein Object[] Array, das zufällig ein coord[] Array ist. Der Compiler kann dies nicht garantieren, damit Sie den Fehler erhalten, aber Sie können das Array sicher zurückgeben, das Ihnen zurückgegeben wird.

Und nur eine kleine Anmerkung: Sie sollten sich angewöhnen, richtige Einrückung und Großschreibung zu verwenden (Klassen sollten mit einem Großbuchstaben beginnen), sonst ist Ihr Code ein bisschen schwer zu lesen.

+0

Danke für Ihre Hilfe! Außerdem hilft die Syntaxnotiz. Mein Programmierkurs ist etwas zu weit weg, um mich an solche Dinge zu erinnern. Ich studiere Mathematik, also verstehe ich die Logik des Programmierens, aber eine Menge anderer Dinge sind für mich Griechisch. – LittleGrandma

+0

@LittleGrandma Kein Problem, ich verstehe es auf jeden Fall! –

Verwandte Themen