Android Realm:如何将int设置为nullable,以便如果它得到值;空";从json返回,它可以被忽略
我的目标如下:Android Realm:如何将int设置为nullable,以便如果它得到值;空";从json返回,它可以被忽略,android,json,realm,nullable,primitive,Android,Json,Realm,Nullable,Primitive,我的目标如下: @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 C
@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;
}
}
但每次我得到一个json响应,int(或primitive)为null,我就会在领域中得到一个错误:
08-29 16:45:59.220:I/WSCalls(6370):错误:尝试将不可为null的字段“出发时间”设置为null
我从Realm3.5中了解到,可以设置空值,或者设置默认版本,但我还没有做到这一点。
这怎么可能?我发现@Nullable没有帮助首先:
int
是一种基本数据类型,不能与null
一起使用
解决方案:
您可以将类型更改为Integer
。Integer
可以包含null
,但由于装箱/取消装箱,它会增加一些开销。
(请参阅:)只需使用get()而不是getInt()并检查其是否为null。然后解析到一个it。是的,谢谢,我自己也注意到了。当我开始使用realm时,它是0.85,不支持整数,只支持原语。不知道他们添加了对Integer的支持,直到现在如何应用notEqualto的检查。。。域查询realm.where(SalesTargetCustProdModel.class).equalTo(SalesTargetModel.SALES\u TARGET\u USER\u ID,agentId).equalTo(SalesTargetModel.Customer\u Master\u ID,customerId).notEqualTo(SalesTargetModel.PRODUCT\u Master\u ID,”).equalTo(SalesTargetModel.PRODUCT\u ID,”).findAll()