java两个实体类转化问题

其中一个类只比另一个类多一个属性,其他属性类型都一致,两个类继承于同一个父类,怎么把属性少的那个类转化成属性多的哪个类。(其实就是两个基本一样的数据表,其中一个比另一个多... 其中一个类只比另一个类多一个属性,其他属性类型都一致,两个类继承于同一个父类,怎么把属性少的那个类转化成属性多的哪个类。(其实就是两个基本一样的数据表,其中一个比另一个多一个字段,想把字段少的表中的数据放到字段多的那个里面)。目前我是把一个对象的属性一个一个set到另一个对象里=,=||40多个属性呢。。。笨死我得了 展开
 我来答
刘夏炎
推荐于2016-01-13 · TA获得超过351个赞
知道小有建树答主
回答量:370
采纳率:0%
帮助的人:379万
展开全部
假如
A 类 里有 2个属性 X 和 Y
B 类 里有 3个属性 X ,Y,Z
你的意思是 这2个类 唯一的区别是 B 比 A 多 一个属性 ,你想 批量的把A 的一个实例 转换成 B 的一个 实例 是这个意思吧。
你可以写一个处理类
写一个方法 接收一个A类对象 和多处来的属性 返回一个B类对象 ,麻烦就麻烦一次 以后直接调用 传里个A类 得到个B类 就可以直接用了
例如
public B setXYZ( A a, int z){
B b=new B();
b.setX(a.getX());
b.setY(a.getY());
b.setZ(z);
return b;
}
追问
嗯嗯~就是这个意思,我也是你说的写了一个方法,但是40多个属性也够麻烦的 所以来看看有没有更好的方法。有好办法多加分,没好办法加5分
追答
你查查eclipse 生成构造方法 的功能 我记得有个字段生成 你看看有没有接受 父类对象那种的构造方法 如果有你就省事了 直接 用构造方法 接受个A类对象创建B的对象
angeldeng526
2011-10-19
知道答主
回答量:11
采纳率:0%
帮助的人:4.6万
展开全部
你的意思是说A、B两个类继承C,A和B属性基本相同,但A比B多一个字段。然后把B的数据放到A中么?如果是这样,你可以把B作为A 的属性就可以把数据放到A中了.
class A{
private B b;
}
在A中提供B的get和set方法,就可以把B的数据放到A中了
追问
可是两个类都是公司自动生成的,不能手动改=,=||
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
银河火星站
2018-04-24
知道答主
回答量:2
采纳率:0%
帮助的人:675
展开全部
可以利用反射来完成自动赋值,可以直接用下面这个方法。
public static <S, T> T mapper(S source, Class<T> target) {

Method[] sourceMethods = source.getClass().getMethods();

Method[] targetMethods = target.getMethods();

T t = null;
try {
t = target.newInstance();

for (Method sourceMethod : sourceMethods) {

String sourceMethodName = sourceMethod.getName();

if (sourceMethodName.startsWith("get")) {

Object result = sourceMethod.invoke(source);

for (Method targetMethod : targetMethods) {

String targetMethodName = targetMethod.getName();

if (targetMethodName.startsWith("set")
&& targetMethodName.substring(3, targetMethodName.length())
.equals(sourceMethodName.substring(3, sourceMethodName.length()))) {
targetMethod.invoke(t, result);
break;
}
}

}

}
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return t;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
樱桃格格2017
2011-10-19 · TA获得超过345个赞
知道小有建树答主
回答量:558
采纳率:0%
帮助的人:158万
展开全部
没明白你说的啥意思
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wen123103624
2011-10-19 · TA获得超过105个赞
知道答主
回答量:144
采纳率:0%
帮助的人:74.4万
展开全部
汗呀,你不知道java 有快捷的get set 方法吗?需要自己一个一个的写吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式