java 板


LINE

我这边有一个比较特别的需求,想请教一下大家目前的java能不能做到 class A { int a1; int a2; } class B extends A { int b1; int b2; } 我们现在有一个A的实体a A a = getA(); 然後我希望用这个实体去initialize出一个B B b = new B(a); <==当然不会过 我有试过在B里面用super试图去initialize : B(A a) { super(a); <==除非A有copy constructor 不然也不会过 } 请问有没有比较好的方法能够new一个B 里面关於A的部分通通用一个A的 实体去initialize呢? 基本上我不太愿意用土炮的方法比方说 B(A a) { this.a1 = a.a1; this.a2 = a.a2; } 当然,用reflect去扫出所有的A的field再设值给B也是可以 比方说我刚写好的https://gist.github.com/Rayer/6c7547057adb99c74583 只是我在想有没有更好的方法 感谢大家 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.124.251.135
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1423811604.A.F3A.html ※ 编辑: Killercat (59.124.251.135), 02/13/2015 15:14:35 ※ 编辑: Killercat (59.124.251.135), 02/13/2015 15:42:23
1F:推 popcorny: 建议用土炮作法,keep it simple and stupid 02/13 17:34
2F:→ realmeat: clonable 02/13 17:40
3F:→ Killercat: pop:土炮问题在於说这bean很多,我不太想一个个稿orz 02/13 17:55
4F:→ Killercat: @realmeat:cloneable仅只是保证你有做出clone() 02/13 17:55
5F:→ Killercat: 可以安全地clone而已 并不会帮你这样clone orz 02/13 17:55
6F:→ Killercat: 诶等等 cloneable我误会了 也许是个不错的做法.... 02/13 17:59
7F:→ popcorny: clonable是产生同型态的instance吧 02/13 18:01
8F:→ popcorny: 可以试试看BeanUtils. http://goo.gl/S25DER 02/13 18:06
9F:→ popcorny: 但是前提是A的fields都要包getter 02/13 18:06
10F:→ Killercat: getter...这又是另外一个痛点了orz 02/13 18:47
11F:→ Killercat: 不过谢谢上面两位 我都试试看好了 这需求真诡异阿... 02/13 18:47
12F:→ ClareQ: 这个需求很怪,不应这样做...实际运用的场景是什麽呢? 02/13 21:09
13F:→ ClareQ: 如果只是单纯的POJO,还会遇到B是不是个A的问题...如 02/13 21:10
14F:→ ClareQ: equals和hashCode的实作,还有Comparable的实作等... 02/13 21:10
15F:推 haha02: 用Gson把父类别转toJson再用子类别fromJson如何?虽然他 02/14 02:25
16F:→ haha02: 底层也是用reflection做… 02/14 02:25
17F:推 pzyc79: 你有考虑到Fields被子类别遮蔽的的情况吗 02/15 15:50
18F:→ Killercat: 其实这算是之前造成的历史共业,不过我也觉得不妥 02/16 13:06
19F:→ Killercat: 我後来舍弃掉继承改用包含 看起来是清爽很多 02/16 13:06
20F:→ Killercat: 先谢谢大家提供的意见啦.... 02/16 13:06
21F:→ Killercat: (背後改了一早上的utilities就当作还技术债吧 XD) 02/16 13:24







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP