SQLite и Java для начинающих здесь,Создания сложных объектов из ResultSet
Я в настоящее время работаю над игрой, где игрок получает случайные элементы, так как я планирую в том числе огромного количества предметов, я сохраненные информацию пункта в SQLite db.
Дело в том, что объекты моего объекта имеют свои собственные объекты поведения в дополнение к таким полям, как String name, int power и т. Д. Это делает преобразование результатов в объекты более сложным делом. В настоящее время я имею в виду эти поведения как строки в db, а затем создание экземпляра правильного объекта поведения с помощью оператора Switch в Item Creation. Это только полу-вымышленный пример, чтобы показать, что я имею в виду:
Item item = new Item();
String name = resultSet.getString("Name");
String activationEffect = resultSet.getString("Activation Effect");
item.setName(name);
switch (activationEffect){
case "Smack Fools":
item.setActivationEffect(new SmackFools());
break;
case "Have a Nap":
item.setActivationEffect(new NapTime());
break;
default:
break;
В качестве альтернативы я мог бы сделать item.setActivationEffect взять строку и сделать переключатель заявление сам, но это не меняет ничего. Есть ли лучший способ сделать это?
Вы должны задать только один вопрос на каждый вопрос. Тем более, что ваши два вопроса совершенно разные. Пожалуйста, удалите свой второй. Вы можете задать еще один вопрос. Это поможет вам получить больше и больше ответов. –
Хорошо, сделаю. – dGFisher
Очень простой способ хранения графов объектов в реляционной базе данных состоит в том, чтобы ваши классы реализовали «Serializable», а затем сохранили весь сериализованный граф объектов в столбце базы данных. Вы можете сделать что-то подобное, «стягивая» свой объект в JSON 'String', а затем сохраняя строку в поле базы данных. Сериализованную форму и JSON 'String' можно десериализовать в исходный объект. Необходимо проявлять осторожность, чтобы ваши серийные формы были эффективными и правильными. – scottb