Я создаю класс сущности, используя аннотацию сущности базы данных помещения, как это:
@Entity(tableName = "dropbox_payload")
public class DropboxPayload {
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id")
@NonNull
private int id;
@ColumnInfo(name = "tId")
private String trialId;
@TypeConverters(DeviceDetailsConverter.class)
private DeviceDetails deviceDetails;
@TypeConverters(ContentConverter.class)
private Map<String, String> content;
public DropboxPayload(String trialId, DeviceDetails deviceDetails, Map<String, String> content) {
this.trialId = trialId;
this.deviceDetails = deviceDetails;
this.content = content;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTrialId() {
return trialId;
}
public void setTrialId(String trialId) {
this.trialId = trialId;
}
public DeviceDetails getDeviceDetails() {
return deviceDetails;
}
public void setDeviceDetails(DeviceDetails devices) {
this.deviceDetails = devices;
}
public Map<String, String> getContent() {
return content;
}
public void setContent(Map<String, String> content) {
this.content = content;
}
public static class DeviceDetailsConverter {
@TypeConverter
public String stringFromDeviceDetails(DeviceDetails value) {
if (value == null) {
return null;
}
String json = new Gson().toJson(value);
return json;
}
@TypeConverter
public DeviceDetails personFromString(String value) {
if (value == null) {
return new DeviceDetails();
}
Type type = new TypeToken<DeviceDetails>() {}.getType();
DeviceDetails deviceDetails = new Gson().fromJson(value, type);
return deviceDetails;
}
}
public static class ContentConverter{
@TypeConverter
public String stringFromContent(Map content){
if (content == null) {
return null;
}
String json = new Gson().toJson(content);
return json;
}
@TypeConverter
public Map<String, String> contentFromString(String value) {
if (value == null) {
return null;
}
Type type = new TypeToken<Map<String, String>>() {}.getType();
Map<String, String> content = new Gson().fromJson(value, type);
return content;
}
}
}
Но когда я пытаюсь скомпилировать свой код, отображается это сообщение об ошибке:
error: constructor DropboxPayload в классе DropboxPayload нельзя применять к данным типам;
required: int,String,DeviceDetails,Map<String,String>
found: no arguments
причина: фактические и формальные списки аргументов различаются по длине
Я просто хочу получить класс Model без идентификатора, и вот почему Я создал конструктор без него. Кто-нибудь может объяснить, как это сделать?