Kopieren Sie bestimmte Felder mithilfe von BeanUtils.copyProperties?
springframework.beans.BeanUtils
ist sehr nützlich zum kopieren von Objekten, und ich benutze die "ignoreProperties" option Häufig. Aber manchmal möchte ich das kopieren nur bestimmte Objekte (im Grunde das Gegenteil von "ignorieren " Eigenschaften"). Weiß jemand, wie kann ich das machen? Jede Hilfe wird geschätzt.
import org.springframework.beans.BeanUtils;
public class Sample {
public static void main(String[] args) {
DemoADto demoADto = new DemoADto();
demoADto.setName("Name of Demo A");
demoADto.setAddress("Address of Demo A");
DemoBDto demoBDto = new DemoBDto();
//This is "ignoreProperties" option
//But I want to know how I can copy only name field by using BeanUtils or something.
BeanUtils.copyProperties(demoADto, demoBDto, new String[] {"address"});
System.out.println(demoBDto.getName());
System.out.println(demoBDto.getAddress());
}
}
public class DemoADto {
private String name;
private String address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
public class DemoBDto {
private String name;
private String address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
InformationsquelleAutor der Frage zono | 2011-02-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die
BeanWrapper
Technologie. Hier ist eine Beispiel-Implementierung:Oder, wenn Sie wirklich, wirklich verwenden möchten
BeanUtils
hier eine Lösung. Invertieren der Logik, sammeln, schließt durch den Vergleich der volle Eigenschaft Liste mit den includes:InformationsquelleAutor der Antwort Sean Patrick Floyd
Wenn Sie nicht möchten, zu verwenden, Commons BeanUtils Sie können immer noch Frühling durch die Verwendung der BeanWrapper.
Müssen Sie manuell in einer Schleife durch alle Eigenschaften, so werden Sie wollen, um eine statische Hilfsmethode.
Können Sie immer nur kopieren, was copyProperties tut und anpassen, um Ihren wünschen:
http://tinyurl.com/BeanUtils-copyProperties
InformationsquelleAutor der Antwort Adam Gent
Check this out: BeanPropertyCopyUtil.
Beispiel:
Müssen Sie auch die Apache-Commons-BeanUtils.
InformationsquelleAutor der Antwort eolith
Hier ist ein Beispiel mit Feder-BeanUtils-Klasse:
InformationsquelleAutor der Antwort ingchristianreyes
Können Sie verwenden
org.springframework.Bohnen.BeanUtils.copyProperties(Object source, Object target, Class editierbar) wirft BeansException
Sorgen für die Gegner implementiert das interface editierbar definiert die Eigenschaften, die wäre kopiert.
InformationsquelleAutor der Antwort Gautam Pal