GreenDAO正在搜索其生成的類中名稱中包含「m」前綴的getter和setter。如何從greenDAO生成的getters和setters中刪除「m」前綴?
例如,我設置的實體不會產生任何的getter和setter,但它仍然看起來對,讓我們說,getMDate()
我private Date mDate
,而不是我的手動創建getDate()
方法。二傳手同樣如此。
這只是打破了我遵守Android Code Style Guidelines。
有什麼辦法可以配置greenDAO來使用我在Android Studio中生成的代碼樣式標準嗎?
編輯:只是爲了讓事情更清晰,我已經添加了一些代碼來了解我的點。我寫了上面的問題,因爲在嘗試工作的時候因慢性乾燥症而停止使用抗組胺劑,只是想睡覺,所以如果它不夠用,我表示歉意。
@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;
}
}
以上是我的Day
類。正如你所看到的,我已經禁止了@Entity
註釋中的獲取者和設置者的生成,並將我自己放在那裏。當我使用alt + enter爲每個字段創建getter和setter時,我已經設置了Android Studio以考慮「m」。
public Date getMDate() {
return mDate;
}
public void setMDate(Date mDate) {
this.mDate = mDate;
}
這裏是getter和setter該greenDAO產生用於給定的字段private Date mDate
我的代碼的一個例子。這是打破了代碼風格的指導方針,因爲局部變量包含「m」前綴,並且方法名也包含它(可能有點挑剔,但是您可以設置Android Studio,不要這樣做,這讓我覺得它不應該這樣)。
隨着我的getters和setters那裏,greenDAO仍然認爲getters和setters缺失,導致他們被添加兩次。一次是我放入的那個,另一個是你上面看到的。這也會導致下面的代碼生成。
@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());
}
下面是一些從由greenDAO生成的類DayDao
的代碼。如果我沒有在Day
實體類上禁用它們的生成,它仍然使用它將用於生成它自己的getter和setters(getMDate()
而不是getDate()
)的getter(和setters)的名稱。我無法更改此代碼,因爲它只是在我下次構建項目時切換回來,並且存在我的問題。
我的問題是:如何讓greenDAO在生成其代碼時考慮到「m」前綴事項,並讓它使用我自己設定的getter和setter?甚至可以讓它自己生成getter和setter,而不在名稱和局部變量中包含「m」?
對於非靜態和非公開的字段使用「m」前綴是標準的。 – Gala
@加拉是啊,那就是我正在做的。我看不到你的觀點 –
我們所有人都不明白你的問題。你想要存檔什麼? – Gala