Hi there --
I get a java.lang.RuntimeException: Unable to invoke no-args
constructor for class error when trying to instantiate from JSON the
following class, even though it does indeed have a no-args
constructor. Would love to know what I'm doing wrong!
public class Upload {
@SerializedName("id") private int _id;
@SerializedName("description") private String
_description;
@SerializedName("created_at") private Date
_createdAt;
@SerializedName("updated_at") private Date
_updatedAt;
@SerializedName("csv_file_file_name") private String
_csvFileFileName;
@SerializedName("csv_file_content_type") private String
_csvFileContentType;
@SerializedName("csv_file_file_size") private int
_csvFileFileSize;
@SerializedName("csv_file_updated_at") private Date
_csvFileUpdatedAt;
@SerializedName("status_id") private int _statusId;
@SerializedName("source_path") private String
_sourcePath;
@SerializedName("source_file_size") private long
_sourceFileSize;
public Upload() {
_id = -1;
_csvFileFileSize = -1;
_statusId = -1;
_sourceFileSize = -1;
}
public int id() {
return _id;
}
public void setId(int id) {
_id = id;
}
// ... additional getters and setters for all the above private
fields ...
public void save(...) throws Throwable {
// ... writes to the server via an HTTP POST
}
/*
* Restore from JSON
*/
private void restore(String result) {
Gson g = new Gson();
updateAttributes(g.fromJson(result, Upload.class));
}
private void updateAttributes(Upload upload) {
_id =
upload.id();
_description = upload.description();
_createdAt = upload.createdAt();
_updatedAt = upload.updatedAt();
_csvFileFileName = upload.csvFileFileName();
_csvFileContentType = upload.csvFileContentType();
_csvFileFileSize = upload.csvFileFileSize();
_csvFileUpdatedAt = upload.csvFileUpdatedAt();
_statusId = upload.statusId();
_sourcePath = upload.sourcePath();
_sourceFileSize = upload.sourceFileSize();
}