lan*_*nyf 9 android gson android-room
当使用Gson时,它创建了POJO,用于解析/序列化来自远程服务的json数据结果.它可能有一些Gson的注释
public class User {
@SerializedName(“_id”)
@Expose
public String id;
@SerializedName(“_name”)
@Expose
public String name;
@SerializedName(“_lastName”)
@Expose
public String lastName;
@SerializedName(“_age”)
@Expose
public Integer age;
}
Run Code Online (Sandbox Code Playgroud)
}
但对于使用Room的类,它可能有自己的注释:
import android.arch.persistence.room.Entity;
import android.arch.persistence.room.PrimaryKey;
@Entity
public class User {
public @PrimaryKey String id;
public String name;
public String lastName;
public int age;
}
Run Code Online (Sandbox Code Playgroud)
可以将这两个与两个库中的所有注释合并为一个(如果存在注释冲突(希望不是),则必须使用长包名解析)?
是的,你可以为房间和gson制作一个单一的pojo课程.当对服务器的请求以及在服务器中没有发送任何数据时,使用了临时关键字,如果你不想插入任何使用@Ignore的字段表 .
下面用于gson和房间的代码..
@Entity
public class User {
@PrimaryKey(autoGenerate = true)
@SerializedName("_id")
@ColumnInfo(name = "user_id")
public long userId;
@SerializedName("_fName")
@ColumnInfo(name = "first_name")
private String name;
public long getUserId() {
return userId;
}
public void setUserId(long userId) {
this.userId = userId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
它可以工作,但将来可能会导致一些问题,因此不建议用于干净的软件设计。观看有关此内容的演讲:MarkoMiloš:Android上的简洁架构
如前所述,您应该对数据库和webresults / json使用不同的实体,并在它们之间进行转换。
| 归档时间: |
|
| 查看次数: |
2923 次 |
| 最近记录: |