GreenDAO sucht nach Getter und Setter mit dem Präfix "m" in den generierten Klassen.Wie kann ich das Präfix "m" aus den generierten Getter und Setter von greenDAO entfernen?
Zum Beispiel habe ich die Einheit festgelegt keine Getter und Setter zu generieren, aber es sieht immer noch für, sagen wir mal, getMDate()
für meine private Date mDate
, statt meiner manuell erstellt getDate()
Methode. Gleiches gilt für Setter.
Dies ist nur brechen meine Einhaltung der Android Code Style Guidelines.
Gibt es eine Möglichkeit, greenDAO so zu konfigurieren, dass die Codestilstandards verwendet werden, die ich in Android Studio festgelegt habe, wenn Code generiert wird?
EDIT: Nur um die Dinge klarer, habe ich einige Code hinzugefügt meinen Punkt herüber zu erhalten. Ich schrieb die obige Frage auf Antihistaminika wegen chronischem Heuschnupfen, während ich versuchte zu arbeiten und wollte nur schlafen gehen, also entschuldige ich mich, wenn es nicht genug war, damit zu arbeiten.
@Entity(generateConstructors = false, generateGettersSetters = false)
public class Day {
@Id
private long mId;
@Unique
@NotNull
private Date mDate;
@ToMany(referencedJoinProperty = "mDayId")
private List<Goal> mGoals;
public Day(long id) {
this.mId = id;
mGoals = new ArrayList<Goal>();
}
public Day(long id, Date date) {
this.mId = id;
this.mDate = date;
}
public long getId() {
return mId;
}
public void setId(long id) {
mId = id;
}
public Date getDate() {
return mDate;
}
public void setDate(Date date) {
mDate = date;
}
public List<Goal> getGoals() {
return mGoals;
}
public void setGoals(List<Goal> goals) {
mGoals = goals;
}
}
Oben ist meine Day
Klasse. Wie Sie sehen können, habe ich die Generierung der Getter und Setter in der @Entity
Annotation deaktiviert und setze meine eigenen ein. Ich habe Android Studio eingerichtet, um das "m" zu berücksichtigen, wenn ich alt + enter verwende, um Getter und Setter für jedes meiner Felder zu erstellen. Hier
public Date getMDate() {
return mDate;
}
public void setMDate(Date mDate) {
this.mDate = mDate;
}
ist ein Beispiel für die Getter und Setter, die greenDAO für meinen Code erzeugt private Date mDate
das Feld gegeben. Dies ist ein Verstoß gegen die Codestilrichtlinien, da die lokalen Variablen das Präfix "m" enthalten und auch die Methodennamen es enthalten (vielleicht ein kleines Problem, aber Sie können Android Studio so einrichten, dass es nicht Tu das, was mich denken lässt, dass es nicht so sein sollte.
Mit meinen Getter und Setter, greenDAO denkt immer noch die Getter und Setter fehlen, was dazu führt, dass sie zweimal hinzugefügt werden. Einmal wie die, die ich hineinlege, und eine andere als das, was du oben siehst. Dies führt auch zur Generierung des folgenden Codes.
@Override
protected final void bindValues(DatabaseStatement stmt, Day entity) {
stmt.clearBindings();
stmt.bindLong(1, entity.getMId());
stmt.bindLong(2, entity.getMDate().getTime());
}
@Override
protected final void bindValues(SQLiteStatement stmt, Day entity) {
stmt.clearBindings();
stmt.bindLong(1, entity.getMId());
stmt.bindLong(2, entity.getMDate().getTime());
}
Hier ist ein Teil des Codes aus der Klasse DayDao
, die aus greenDAO erzeugt wird. Es verwendet immer noch die Namen für die Getter (und auch die Setter), die es verwendet hätte, um seine eigenen Getter und Setter zu generieren (getMDate()
anstelle von getDate()
), wenn ich ihre Generierung in der -Entitätsklasse nicht deaktiviert habe. Ich kann diesen Code nicht ändern, weil er das nächste Mal, wenn ich das Projekt erstelle, einfach zurückschaltet, und da ist mein Problem.
Meine Frage ist: Wie kann ich greenDAO dazu bringen, das "m" -Präfix-Ding zu berücksichtigen, wenn es seinen Code erzeugt und es dazu bringt, die Getter und Setter zu verwenden, die ich selbst erstellt habe? Oder es sogar bekommen, Getter und Setter selbst zu erzeugen, ohne dass das "m" in den Namen und lokalen Variablen enthalten ist?
Die Verwendung eines Präfix 'm' für Felder, die nicht statisch und nicht öffentlich sind, ist Standard. – Gala
@Gala Ja, und das mache ich. Ich verstehe Ihren Punkt nicht –
Und wir alle verstehen Ihre Frage nicht. Was versuchst du zu archivieren? – Gala