Для понимания Dozer я создал два класса PrimaryType и SecondaryType и попытался их сопоставить с помощью Dozer. Дозер легко мог их сопоставить.Частный конструктор, не влияющий на Dozer
Попробовал сделать конструктор SecondaryType частным, но все же Dozer был успешно создан объект типа SecondaryType и смог отобразить его поля. Может ли кто-нибудь объяснить, как Doerg может создать экземпляр класса, у которого есть частный конструктор?
PrimaryType.java
package in.yogi;
public class PrimaryType
{
private String name;
private int age;
public PrimaryType(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "PrimaryType [name=" + name + ", age=" + age + "]";
}
}
SecondaryType.java
package in.yogi;
public class SecondaryType
{
private String name;
private int age;
private SecondaryType() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "SecondaryType [name=" + name + ", age=" + age + "]";
}
}
AppMain.java
package in.yogi;
import org.dozer.DozerBeanMapper;
import org.dozer.Mapper;
import in.yogi.PrimaryType;
public class AppMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("This is the main Application!!!");
PrimaryType sourceObject = new PrimaryType("Munsamy", 20);
System.out.println(sourceObject);
Mapper mapper = new DozerBeanMapper();
SecondaryType destObject =
mapper.map(sourceObject, SecondaryType.class);
System.out.println(destObject);
}
}
вывода utput:
PrimaryType [name=Munsamy, age=20]
log4j:WARN No appenders could be found for logger (org.dozer.config.GlobalSettings).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
SecondaryType [name=Munsamy, age=20]
Интересно, что если методы получения и установки сделаны частные значения не получают скопирована. – Yogeswaran