2016-06-23 12 views
0

Umsetzung Ich versuche greenDAO die implementsInterface Methode zu verwenden, ist hier die meisten meiner Hauptgenerator Klasse:Fehler bei Schnittstellen mit greenDAO

private static void addTables(final Schema schema) { 
    Entity photo_pronoun = addCard(schema); 
    Entity simple_pronoun = addSimpleCard(schema); 
    Entity original_pronoun = addOriginalCard(schema); 

    //implementsInterface method 
    original_pronoun.implementsInterface("addNewCard"); 
    simple_pronoun.implementsInterface("addNewCard"); 
} 

private static Entity addCard(final Schema schema) { 
    Entity card = schema.addEntity("addNewCard"); 
    card.addIdProperty().primaryKey().autoincrement(); 
    card.addStringProperty("cardName").notNull(); 
    card.addStringProperty("cardSpeech"); 
    card.addByteArrayProperty("cardIcon"); 

    return card; 
} 
private static Entity addSimpleCard(final Schema schema) { 
    Entity card = schema.addEntity("addSimpleCard"); 
    card.addIdProperty().primaryKey().autoincrement(); 
    card.addStringProperty("cardName").notNull(); 
    card.addStringProperty("cardSpeech"); 
    card.addByteArrayProperty("cardIcon"); 
    return card; 
} 

private static Entity addOriginalCard(final Schema schema) { 
    Entity card = schema.addEntity("addOriginalCard"); 
    card.addIdProperty().primaryKey().autoincrement(); 
    card.addStringProperty("cardName").notNull(); 
    card.addStringProperty("cardSpeech"); 
    card.addByteArrayProperty("cardIcon"); 
    return card; 
} 

Wenn ich laufen diese meine Dateien zu erstellen, ich einen Fehler in original_pronoun bekommen und in bei addNewCard auf meiner ersten Linie simple_pronoun:

Schnittstelle public class addOriginalCard implements addNewCard {

hier erwartet

Ich bekomme diesen Fehler, weil es keine Schnittstelle ist, aber ich bin verwirrt, wie man es repariert. Die implementsInterface Methode sagt, es dauert eine Zeichenfolge, aber ich habe dies und den Namen der Datenbank ohne Freude versucht. Kann mir jemand sagen, was ich hier machen soll?

Antwort

1

Dies ist kein greenDAO-Problem: addNewCard ist eine Klasse, keine Schnittstelle. Wenn Ihre Modellklasse von einer anderen Klasse erben muss, müssen Sie die Methode setSuperclass() verwenden. Beispiel:

original_pronoun.setSuperclass("addNewCard"); 

Beachten Sie, dass greenDAO noch keine andere Entität als eine Superklasse unterstützt, wenn dies Ihre Absicht ist.

Überprüfen Sie greenDAO docs for Inheritance and Interfaces.
Siehe auch diese Frage: Implements vs. Extends. When to use? What's the Difference?

+1

sorry ich klarer sein sollte, die ich weiß, dass dies ein Fehler ist nicht greendao, –

+0

@MartinSeal Sorry, wenn ich unhöflich sein schien, war dies nicht die Absicht. : D –

+0

überhaupt nicht, nahm ich an Ihre Kommentare lesen Sie die Dokumente wieder ive recherched, was Sie über Geräte gesagt und erweitert und sah abstrakte Klassen, aber ich bin immer noch völlig verwirrt darüber, wie ich mit diesem voranzukommen, aber ich schätze deine Kommentare –