想要在Realm中添加對象,但是從構建器模式創建對象引用。領域要求getter屬性。有沒有可能在Realm中添加對象而沒有getter而是使用Builder類?想要在Realm中添加對象,但是從構建器模式創建對象引用
0
A
回答
-1
不,區域使用代理方法分配對象字段。您應該考慮使用數據訪問對象 - 數據庫周圍的抽象接口。創建數據模型,將由您的應用程序和另一個模型(可能具有相同的字段)使用,僅由Realm使用。 這將是更多的代碼,但通過這樣做,你將獨立於數據庫實現。 您的模型對象應該由Builder創建,然後由某個數據庫接口接受。在實現這個接口時,你將把這個對象轉換成Realm對象。
+0
是的,Realm使用代理方法分配對象字段,但所有字段訪問均使用Realm-Transformer轉換爲代理方法調用。 – EpicPandaForce
0
與Eliminate @Boilerplate類似,您可以爲您的RealmObjects創建構建器(請注意AutoValue支持不在,因爲不支持抽象類)。
public class User extends RealmObject {
@PrimaryKey
String username;
String firstname;
String lastname;
int age;
public String getUsername() {
return username;
}
public String getFirstname() {
return firstname;
}
public String getLastname() {
return lastname;
}
public int getAge() {
return age;
}
}
您可以創建一個生成器是這樣的:
public final class UserBuilder {
private String username;
private String firstName;
private String lastName;
private int age;
public UserBuilder() {
}
public UserBuilder username(String username) {
this.username = username;
return this;
}
public UserBuilder firstName(String firstName) {
this.firstName = firstName;
return this;
}
public UserBuilder lastName(String lastName) {
this.lastName = lastName;
return this;
}
public UserBuilder age(int age) {
this.age = age;
return this;
}
public User build() {
User user = new User();
user.username = this.username;
user.firstName = this.firstName;
user.lastName = this.lastName;
user.age = this.age;
return user;
}
}
這是可能的,因爲0.88.0及以上,因爲境界變壓器變爲代理方法調用的所有字段訪問。
但是,這種設置,我不知道你會如何可靠地修改管理RealmObject,因爲保存的關係,它使用相同的管理對象是非常重要的(使用findFirst()
然後制定者) - 考慮非託管對象被認爲是一個「新」對象,並使用相同的主鍵將它保存在以前的對象上,從而使對象鏈接無效。
相關問題
- 1. 構建器模式,但建設者在對象構造函數
- 2. 創建與「舊」的對象引用Builder模式新對象
- 3. 從對象數組創建一個對象引用父對象
- 4. 對象創建鏈模式
- 5. 如何構建Realm的查詢對象
- 6. 想要創建對象只有一次
- 7. Realm對象服務器創建DB和ROS但不同步
- 8. 創建對象的引用
- 9. 創建對象的引用
- 10. 創建對象的引用
- 11. 如何創建獨立的Realm對象
- 12. 創建從對象
- 13. 創建從對象
- 14. 用於創建對象的Java模式
- 15. 如何在內聯對象創建中引用父對象?
- 16. 從對象列表中遞歸創建對象樹結構
- 17. 構建模式不向對象添加值
- 18. 結構和對象創建
- 19. Javascript創建對象結構
- 20. 爲什麼要創建模擬對象?
- 21. python通過引用對象名稱通過變量創建對象,從列表中創建對象
- 22. 構建對象
- 23. 構建對象
- 24. C#從ExcelFile對象創建ExcelFile對象
- 25. 創建對象從類對象爲
- 26. 從對象創建對象輸出流
- 27. 從動態對象創建對象
- 28. 從另一個對象創建對象
- 29. 如何從父對象創建對象?
- 30. 從現有對象創建新對象
構建器如何克服將getter添加到類中的方式? –