Java 从一个可序列化对象到另一个可序列化对象的对象值赋值
我有两个对象userBO和userEntity。我希望将对象值从userEntity传输到userBO,并要求在传输值时不应丢失序列化。这就是我正在做的。请告诉我这是正确的吗Java 从一个可序列化对象到另一个可序列化对象的对象值赋值,java,Java,我有两个对象userBO和userEntity。我希望将对象值从userEntity传输到userBO,并要求在传输值时不应丢失序列化。这就是我正在做的。请告诉我这是正确的吗 public static UserBO converUserEntityToUserBO(UserEntity userEntity) { UserBO userBO = new UserBO(); userBO.setUserId(userEntity.getUserId()); userBO.
public static UserBO converUserEntityToUserBO(UserEntity userEntity) {
UserBO userBO = new UserBO();
userBO.setUserId(userEntity.getUserId());
userBO.setUserFile(userEntity.getUserFile());
userBO.setUserDepartment(userEntity.getUserDepartment());
return userBO;
}
UserBO.class
public class UserBO implements Serializable {
/**
*
*/
private static final long serialVersionUID = 3886993061934034729L;
private int userId;
private int departmentId;
private byte[] userFile;
private String dbAction;
//getter and setter
}
UserEntity.class
@Entity
@Table(name="USER_ENTITY")
public class UserEntity implements Serializable {
/**
*
*/
private static final long serialVersionUID = -4676281792392490908L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="USER_ID")
private int userId;
@Column(name="USER_DEPARTMENT")
private String userDepartment;
@Lob()
@Column(name="USER_FILE")
private byte[] userFile;
//getter and setter
}
您可以使用ApacheBean UTIL执行相同的操作,请参考下面的示例 **在这里,跨两个DTO具有相同名称的属性值将仅从源复制到标记集
import java.lang.reflect.InvocationTargetException;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang.builder.ToStringBuilder;
public class BeanUtilsCopyPropertiesTest {
public static void main(String[] args) {
FromBean fromBean = new FromBean("fromBean", "fromBeanAProp", "fromBeanBProp");
ToBean toBean = new ToBean("toBean", "toBeanBProp", "toBeanCProp");
try {
System.out.println("Copying properties from fromBean to toBean");
BeanUtils.copyProperties(toBean, fromBean);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
System.out.println(ToStringBuilder.reflectionToString(fromBean));
System.out.println(ToStringBuilder.reflectionToString(toBean));
}
}您可以使用ApacheBean UTIL执行相同的操作,请参考下面的示例 **在这里,跨两个DTO具有相同名称的属性值将仅从源复制到标记集
import java.lang.reflect.InvocationTargetException;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang.builder.ToStringBuilder;
public class BeanUtilsCopyPropertiesTest {
public static void main(String[] args) {
FromBean fromBean = new FromBean("fromBean", "fromBeanAProp", "fromBeanBProp");
ToBean toBean = new ToBean("toBean", "toBeanBProp", "toBeanCProp");
try {
System.out.println("Copying properties from fromBean to toBean");
BeanUtils.copyProperties(toBean, fromBean);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
System.out.println(ToStringBuilder.reflectionToString(fromBean));
System.out.println(ToStringBuilder.reflectionToString(toBean));
}
}您可以使用ApacheBean UTIL执行相同的操作,请参考下面的示例 **在这里,跨两个DTO具有相同名称的属性值将仅从源复制到标记集
import java.lang.reflect.InvocationTargetException;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang.builder.ToStringBuilder;
public class BeanUtilsCopyPropertiesTest {
public static void main(String[] args) {
FromBean fromBean = new FromBean("fromBean", "fromBeanAProp", "fromBeanBProp");
ToBean toBean = new ToBean("toBean", "toBeanBProp", "toBeanCProp");
try {
System.out.println("Copying properties from fromBean to toBean");
BeanUtils.copyProperties(toBean, fromBean);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
System.out.println(ToStringBuilder.reflectionToString(fromBean));
System.out.println(ToStringBuilder.reflectionToString(toBean));
}
}您可以使用ApacheBean UTIL执行相同的操作,请参考下面的示例 **在这里,跨两个DTO具有相同名称的属性值将仅从源复制到标记集
import java.lang.reflect.InvocationTargetException;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang.builder.ToStringBuilder;
public class BeanUtilsCopyPropertiesTest {
public static void main(String[] args) {
FromBean fromBean = new FromBean("fromBean", "fromBeanAProp", "fromBeanBProp");
ToBean toBean = new ToBean("toBean", "toBeanBProp", "toBeanCProp");
try {
System.out.println("Copying properties from fromBean to toBean");
BeanUtils.copyProperties(toBean, fromBean);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
System.out.println(ToStringBuilder.reflectionToString(fromBean));
System.out.println(ToStringBuilder.reflectionToString(toBean));
}
}由于两个类都有相同的字段,java反射可以帮助您更好地完成这项工作。试试这个
public UserBO loadData (UserEntity userEntity) throws Exception{
Method[] gettersAndSetters = userEntity.getClass().getMethods();
UserBO userBO = new UserBO();
for (int i = 0; i < gettersAndSetters.length; i++) {
String methodName = gettersAndSetters[i].getName();
try{
if(methodName.startsWith("get")){
userBO.getClass().getMethod(methodName.replaceFirst("get", "set") ,
gettersAndSetters[i].getReturnType() ).invoke(userBO,
gettersAndSetters[i].invoke(userEntity, null));
}else if(methodName.startsWith("is") ){
userBO.getClass().getMethod(methodName.replaceFirst("is", "set")
, gettersAndSetters[i].getReturnType() ).invoke(userBO, gettersAndSetters[i].invoke(userEntity, null));
}
}catch (NoSuchMethodException e) {
}catch (IllegalArgumentException e) {
}
}
return null;
}
public UserBO loadData(UserEntity-UserEntity)引发异常{
方法[]gettersAndSetters=userEntity.getClass().getMethods();
UserBO UserBO=new UserBO();
for(int i=0;i
由于两个类都有相同的字段,java反射可以帮助您更好地完成这项工作。试试这个
public UserBO loadData (UserEntity userEntity) throws Exception{
Method[] gettersAndSetters = userEntity.getClass().getMethods();
UserBO userBO = new UserBO();
for (int i = 0; i < gettersAndSetters.length; i++) {
String methodName = gettersAndSetters[i].getName();
try{
if(methodName.startsWith("get")){
userBO.getClass().getMethod(methodName.replaceFirst("get", "set") ,
gettersAndSetters[i].getReturnType() ).invoke(userBO,
gettersAndSetters[i].invoke(userEntity, null));
}else if(methodName.startsWith("is") ){
userBO.getClass().getMethod(methodName.replaceFirst("is", "set")
, gettersAndSetters[i].getReturnType() ).invoke(userBO, gettersAndSetters[i].invoke(userEntity, null));
}
}catch (NoSuchMethodException e) {
}catch (IllegalArgumentException e) {
}
}
return null;
}
public UserBO loadData(UserEntity-UserEntity)引发异常{
方法[]gettersAndSetters=userEntity.getClass().getMethods();
UserBO UserBO=new UserBO();
for(int i=0;i
由于两个类都有相同的字段,java反射可以帮助您更好地完成这项工作。试试这个
public UserBO loadData (UserEntity userEntity) throws Exception{
Method[] gettersAndSetters = userEntity.getClass().getMethods();
UserBO userBO = new UserBO();
for (int i = 0; i < gettersAndSetters.length; i++) {
String methodName = gettersAndSetters[i].getName();
try{
if(methodName.startsWith("get")){
userBO.getClass().getMethod(methodName.replaceFirst("get", "set") ,
gettersAndSetters[i].getReturnType() ).invoke(userBO,
gettersAndSetters[i].invoke(userEntity, null));
}else if(methodName.startsWith("is") ){
userBO.getClass().getMethod(methodName.replaceFirst("is", "set")
, gettersAndSetters[i].getReturnType() ).invoke(userBO, gettersAndSetters[i].invoke(userEntity, null));
}
}catch (NoSuchMethodException e) {
}catch (IllegalArgumentException e) {
}
}
return null;
}
public UserBO loadData(UserEntity-UserEntity)引发异常{
方法[]gettersAndSetters=userEntity.getClass().getMethods();
UserBO UserBO=new UserBO();
for(int i=0;i
由于两个类都有相同的字段,java反射可以帮助您更好地完成这项工作。试试这个
public UserBO loadData (UserEntity userEntity) throws Exception{
Method[] gettersAndSetters = userEntity.getClass().getMethods();
UserBO userBO = new UserBO();
for (int i = 0; i < gettersAndSetters.length; i++) {
String methodName = gettersAndSetters[i].getName();
try{
if(methodName.startsWith("get")){
userBO.getClass().getMethod(methodName.replaceFirst("get", "set") ,
gettersAndSetters[i].getReturnType() ).invoke(userBO,
gettersAndSetters[i].invoke(userEntity, null));
}else if(methodName.startsWith("is") ){
userBO.getClass().getMethod(methodName.replaceFirst("is", "set")
, gettersAndSetters[i].getReturnType() ).invoke(userBO, gettersAndSetters[i].invoke(userEntity, null));
}
}catch (NoSuchMethodException e) {
}catch (IllegalArgumentException e) {
}
}
return null;
}
public UserBO loadData(UserEntity-UserEntity)引发异常{
方法[]gettersAndSetters=userEntity.getClass().getMethods();
UserBO UserBO=new UserBO();
for(int i=0;i
每个可序列化类都有一个与
它是您为UserBO
和UserEntity
类明确指定的:
public class UserBO implements Serializable {
private static final long serialVersionUID = 3886993061934034729L;
...
}
public class UserEntity implements Serializable {
private static final long serialVersionUID = -4676281792392490908L;
...
}
如果未通过声明静态最终长字段显式指定此数字
命名s