我在我的应用程序和Gson转换器中使用jof改造。我想在没有互联网连接的情况下使用数据库。我决定使用Sugar ORM。
但我得到public class User extends SugarRecord implements Parcelable {
@SerializedName("id")
@Expose
private Integer id;
@SerializedName("email")
@Expose
private String email;
@SerializedName("name")
@Expose
private String name;
@SerializedName("lastname")
@Expose
private String lastname;
@SerializedName("properties")
@Expose @Ignore
private List<Object> properties = new ArrayList<>();
@SerializedName("rights")
@Expose @Ignore
private String rights;
@SerializedName("photo")
@Expose
private String photo;
@SerializedName("favorites")
@Expose @Ignore
private List<PointsOnMap> favorites = new ArrayList<>();
@SerializedName("token")
@Expose
private String token;
public User() {
}
public User(String name, String lastname, String email, String photo, String token) {
this.name = name;
this.lastname = lastname;
this.email = email;
this.photo = photo;
this.token = token;
}
//getters and setters
。
java.lang.IllegalArgumentException:无法为类创建转换器
这是我的对象
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
while (!scan.hasNextInt()) {
System.out.println("Input is not a number.");
scan.nextLine();
}
int number = scan.nextInt();
}
答案 0 :(得分:1)
问题是使用Sugar时您的类中不能有名为id
的变量,因为默认情况下它使用自己的内部ID。尝试重命名为userId
或类似的名称。
答案 1 :(得分:1)
只需在 Integer 类型之前使用 transient 语句。
@SerializedName("id")
@Expose
private transient Integer id;
然后,如果您具有 getId 和 setId 方法,则应将其删除。
玩得开心!