Realm:如何将 int 设置为可为空,以便如果它从 json 中获取"null"值,则可以忽略它



我有以下对象:

@RealmClass
public class TripStop extends RealmObject implements Serializable {
@Nullable
private int arrival_time;
private String address;
@PrimaryKey
private int id;
@Nullable
private int departure_time;
private Destination place;
private CoordLocation location;
public int getArrival_time() {
    return arrival_time;
}
public void setArrival_time(int arrival_time) {
    this.arrival_time = arrival_time;
}
public String getAddress() {
    return address;
}
public void setAddress(String address) {
    this.address = address;
}
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public int getDeparture_time() {
    return departure_time;
}
public void setDeparture_time(int departure_time) {
    this.departure_time = departure_time;
}
public Destination getPlace() {
    return place;
}
public void setPlace(Destination place) {
    this.place = place;
}
public CoordLocation getLocation() {
    return location;
}
public void setLocation(CoordLocation location) {
    this.location = location;
}
}

但是,每次我以int(或原始)为null回复JSON响应时,我都会在领域中出现一个错误:

08-29 16:45:59.220:i/wscalls(6370):错误:尝试将不可用的字段设置为null。

我从Realm 3.5读到可以设置空值或设置默认版本,但我还没有管理。怎么可能?我看到@nullable无济于事

首先:

int是一种原始数据类型,不能用 null

解决方案:

您可以将类型更改为IntegerInteger可以包含null,但由于拳击/拆箱,它增加了一些开销。(请参阅:https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html)

最新更新