无法为类创建转换器

时间:2016-09-04 12:04:14

标签: android sqlite orm fragment retrofit

我在我的应用程序和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();
  }

2 个答案:

答案 0 :(得分:1)

问题是使用Sugar时您的类中不能有名为id的变量,因为默认情况下它使用自己的内部ID。尝试重命名为userId或类似的名称。

答案 1 :(得分:1)

只需在 Integer 类型之前使用 transient 语句。

    @SerializedName("id")
    @Expose
    private transient Integer id;

然后,如果您具有 getId setId 方法,则应将其删除。

玩得开心!