У меня есть класс POJO, соответственно в нем присутствуют поля с геттерами. Мне необходимо создать дубликат класса, но не экземпляр, через ключевое слово new
, а именно копию, что бы все данные из переменных и коллекций остались при себе. Подтолкните пожалуйста на реализацию.
Для начала имплементируем Cloneable интерфейс. Далее переопределяем метод clone()
class PojoClassOne implements Cloneable{
private String field;
public PojoClassOne(String field) {
this.field = field;
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
class PojoClassTwo implements Cloneable {
private PojoClassOne pojoClassOne;
private List<PojoClassOne> listFields;
public List<PojoClassOne> getListFields() {
return listFields;
}
public void setListFields(List<PojoClassOne> listFields) {
this.listFields = listFields;
}
@Override
protected PojoClassTwo clone() throws CloneNotSupportedException {
PojoClassTwo pojoClassTwo = (PojoClassTwo) super.clone();
List<PojoClassOne> pojoClassOnes = new ArrayList<>();
for (PojoClassOne field : listFields){
pojoClassOnes.add((PojoClassOne) field.clone());
}
pojoClassTwo.setListFields(pojoClassOnes);
pojoClassTwo.setPojoClassOne((PojoClassOne)
this.getPojoClassOne().clone());
return pojoClassTwo;
}
public PojoClassOne getPojoClassOne() {
return pojoClassOne;
}
public void setPojoClassOne(PojoClassOne pojoClassOne) {
this.pojoClassOne = pojoClassOne;
}
}
public class Main {
public static void main(String[] args) throws CloneNotSupportedException {
PojoClassTwo pojoClass = new PojoClassTwo();
pojoClass.setPojoClassOne(new PojoClassOne("field"));
List<PojoClassOne> fields = Arrays.asList(new PojoClassOne("field1"), new PojoClassOne("field2"), new PojoClassOne("field3"));
pojoClass.setListFields(fields);
PojoClassTwo pojoClassClon = (PojoClassTwo) pojoClass.clone();
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Хочу сделать так, чтоб этот метод «convertResponceInObjects» работал с разными объектами, но не получается
Необходимо, чтобы с помощью jQuery появлялся блок имеющий два определенных классаНапример, если я делаю фильтр в интернет магазине и мне нужно...
у меня есть страница последовательной загрузки скриптов за генерацию нужной страницы отвечают несколько скриптов сейчас есть проблема...
Мне нужно пройтись циклом по компоненту Authors и возвратить