我正在尝试执行以下冗余代码 - 将类FeedDBTableRow的对象复制到Feed对象中 - 它们大多数都有重叠的变量集,我试图复制这些常见的变量集。是否有设计模式或注释处理器可以帮助我减少这些(可能容易出错的)代码行?
这样做的原因基本上我想使用Reonofit与GSon和Realm(和Realm由于它自己的构造,需要Pojo从RealmObject类扩展,而这样做会产生GSON错误 - 它在几个地方被记录)
public static Feed getFeedFromDBFeedRow(FeedDBTableRow f){
Feed x = new Feed();
x.setId(f.getId());
x.setText(f.getText());
x.setTime_created(f.getTime_created());
x.setTime_modified(f.getTime_modified());
x.setComments_count(f.getComments_count());
x.setLikes_count(f.getLikes_count());
x.setFeed_type(f.getFeed_type());
x.setObj_id(f.getObj_id());
x.setImage(f.getImage());
x.setUser_name(f.getUser_name());
x.setUser_earthmile_points(f.getUser_earthmile_points());
x.setLiked(f.isLiked());
x.setCommented(f.isCommented());
x.set_private(f.isIs_private());
x.setUrl(f.getUrl());
x.setFeed_creator_id(f.getFeed_creator_id());
return x;
}
public class Feed {
int id;
String text;
Date time_created;
Date time_modified;
int comments_count;
int likes_count;
String feed_type;
int obj_id;
String image;
String user_name;
String user_earthmile_points;
boolean liked;
boolean commented;
boolean is_private;
String url;
int feed_creator_id;
public Feed() {} // required for being Parcelable
}
public class FeedDBTableRow extends RealmObject{ // having this necessity to extend RealmObject is the source of all problem, but I have to do this, hence two classes with similar composition
private int id;
private String text;
private Date time_created;
private Date time_modified;
private int comments_count;
private int likes_count;
private String feed_type;
private int obj_id;
private String image;
private String user_name;
private String user_earthmile_points;
private boolean liked;
private boolean commented;
private boolean is_private;
private String url;
private int feed_creator_id;
}
答案 0 :(得分:1)
看看Apache BeanUtils:http://commons.apache.org/proper/commons-beanutils/javadocs/v1.9.2/apidocs/index.html
特别是,BeanUtils.copyProperties()
可能是您觉得有用的东西。