В настоящее время класс Contact
выглядит как
package com.example.courseproject;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;
import androidx.room.Entity;
import androidx.room.PrimaryKey;
@Entity(tableName = "contact_table")
public class Contact {
@PrimaryKey(autoGenerate = true)
private int id;
private String firstName;
private String lastName;
private Map<String, List<String>> contacts; //Type, Values. Example { "email": {"email_1", "email_2"}}
public Contact(String firstName, String lastName, Map<String, List<String>> contacts) {
this.firstName = firstName;
this.lastName = lastName;
this.contacts = contacts;
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public Map<String, List<String>> getContacts() {
return contacts;
}
}
и в строке 20 (объявление карты) написано
...\Contact.java:20: error: Cannot figure out how to save this field into database. You can consider adding a type converter for it.
private Map<String, List<String>> contacts; //Type, Values. Example { "email": {"email_1", "email_2"}}
Идея состоит в том, чтобы создать телефонную книгу, которая может хранить (конечно) несколько «людей», и каждый из них может иметь разные контакты (и разное их количество).
Можно ли сделать это с картой? Если так, могу ли я просто использовать JSON lib для этой вещи? Если нет, что бы вы предложили?
Насколько я знаю, должна быть "таблица" для связи многих со многими между полем "контакты" и контактом. Мне очень нравится идея JSON, потому что он простой и быстрый, но я знаю, что это не лучшее решение.